Library Updates, Compliance Hardening & Bug Fixes
Security & Dependency Updates
- Patched Critical/High vulnerabilities found in a Grype scan of the SBOM:
ws,form-data,protobufjs,hono,@grpc/grpc-js, andi18next-fs-backendbumped to their fixed versions xlsxswitched from the abandoned npm registry package (unpatched ReDoS/prototype-pollution CVEs) to SheetJS’s own CDN distribution, which contains the actual fixesdaisyUIupgraded to the latest release — compiled CSS diffed against the previous version to confirm no breaking changes- Added
security.txtwith our disclosure contact, policy, and OpenBugBounty program links - Fixed a path traversal vulnerability in attachment download by sanitizing stored filenames before joining them with the upload directory
- Added
Content-Security-Policy,Referrer-Policy, andPermissions-Policyheaders globally - Fixed a
callbackUrlhandling bug that caused NextAuth to silently ignore the post-login redirect parameter - Added server-side URL protocol validation to the IAP course create/update endpoints, blocking
javascript:anddata:scheme payloads - Sandboxed the IAP course content iframe to prevent it from navigating the top frame or accessing cookies
- Rendered markdown now blocks any link that isn’t
https?:,mailto:,#, or/ - Pinned
quillto a safe version to block a known XSS vulnerability in a later release - Updated regulatory compliance assessment (GDPR, SOC 2, ISO 27001, NIS2)
Fixes
- Duplicate module page titles removed across Risk Management, PIA, TIA, RoPA, IAP, and CSC
- Record of Processing Activities naming unified — the module was showing two different names (“Record of Processing Activities” vs “Register of Procedures”) across the app
- Cybersecurity Management System now shows a record-count badge on its page heading and sidebar entry
- All Tasks sidebar and page title now always show the total task count
- Task detail page breadcrumb unified with the rest of the modules
- Fix due date in EU style DD/MM/YYYY
Enhancements
- Module title and record-count badge moved into the shared sticky header across RPA, TIA, PIA, RM, IAP, and CSC, freeing up vertical space on every module page
- Settings sub-pages now show “Settings: {team name}” in the header instead of repeating it as an in-content heading on every tab
- Cybersecurity Management System’s record count reflects the currently selected framework tab; the tab selection is now synced to the URL and deep-linkable
- Sidebar navigation gained a neutral “total items” badge for RoPA, TIA, PIA, and IAP, alongside the existing “needs attention” badges
Translations
- Added a Weblate translation status badge to the project README, making it easier to see translation coverage at a glance and contribute new languages via Hosted Weblate — no code required
Documentation
- Community Edition (Self-Hosted) guide updated with an Upgrading section covering
npx prisma migrate deployandnpx prisma generate - Settings and Introduction pages updated to link to the Hosted Weblate translation project
- RoPA dashboard column table corrected to use the current field name
Record of Processing Activities
Transfer Impact Assessment
Privacy Impact Assessment
Cybersecurity Controls
Cybersecurity Risk Management
Interactive Awareness Program