[Bug] The Informatieveiligheid module leaks: three surfaces stay visible with the module off #648
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#648
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The Informatieveiligheid module hides seven slide types, seven command-palette commands, two menu items, the MIAUW deck template and the MIAUW fields in the presentation properties. Three surfaces were left behind. Each one is settings you can reach, fill in, and then not use, because the only place the result is consumed sits behind the module gate.
To reproduce. Fresh install, or Instellingen → Uitbreidingen → Informatieveiligheid off. Open Instellingen.
1. The Checklists tab.
SettingsSection.checklists(settings_dialog_sections.dart:30) is a full sidebar tab where you build reusable test templates.AppSettings.customChecklistshas exactly one consumer:checklist_editor.dart:165, the editor for thechecklistslide type — and that type is module-gated. With the module off you can create templates, name them, add tests, and never load one anywhere. Eleven sidebar tabs, and one of them does nothing.2. "CVE opzoeken" and "Lokale CVE-database" in Beveiliging.
settings_dialog_security.dart:81onwards.CvePickeris instantiated infinding_editor.dart:339andfinding_wizard.dart:156— both module-only. So with the module off, the Beveiliging tab offers to enable an online CVE lookup that has no entry point, and, on desktop, offers to download the full CVE List V5 — several hundred megabytes, over a gigabyte transiently on disk, a quarter of an hour — to power a search the user cannot open.Nothing leaks by default here:
allowCveLookupis false and the local database is opt-in. This is wasted surface and a bad offer, not a privacy failure.3. The "Pentestrapportage (ontwerp)" docs tile.
settings_dialog_docs.dart:196, pointing atdocs/design/PENTEST_MIAUW.md— the module's own design document, listed with the module off.The third one is a genuine judgement call, and I would argue against gating it. The docs reader is a transparency feature: the point is that anyone can read what this application is and how it was designed, without first switching something on. Hiding a design document is a different act from hiding a feature. If we gate this tile, the same logic reaches the whole Ontwerp group, and that ends with an application that discloses less the less you have enabled. My preference: leave tile 3 alone and fix 1 and 2. Recorded here so the decision is made deliberately rather than by omission.
What the fix looks like
SettingsSection.checklistsoninfoSafetyRevealProvider. The section list is currently unconditional (SettingsSection.navItems), so this needs a reveal predicate per section — a small change, and one the online-storage module (#570) will want as well, since it has to hide storage surface the same way.presentation_info_dialog.dart:411.Why it is worth doing separately from #570. It needs no module registry and touches no storage code. It is also the cheapest possible answer to "the interface is overwhelming for a new user": one sidebar tab and two settings blocks disappear for everyone who has not asked for pentest reporting, with nothing gained or lost in capability.