fix(security): scan herstelde documentmomentopnames op uitvoerbare inhoud (#1643) #1694
No reviewers
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!1694
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/1643-herstel-scan-sluit-aan"
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?
Wat
Een autosave-herstel van een documenttabblad parseerde de snapshot direct (
MarkdownDocument.parse(snap.markdown)) zonder deMarkdownSafetyScannerdie elk normaal geopend.md-bestand wél doorloopt. Een gewijzigd of vervangen herstelbestand (crash, gedeelde machine, malware in de gebruikersmap) omzeilde zo de fail-closed poort die overal anders op staat.Hoe
restoreRecoveredscant nu documentmomentopnames metMarkdownSafetyScanner.scanvóór het parsen — dezelfde poort alsopenDocumentDetailed. Bij een treffer:importSecurityAlarmProvider(het bestaande alarmdialoog toont de bevindingen);Dit sluit aan bij het bestaande document-open-pad, waar
openFileByPathde pre-scan doet en hetzelfde alarm toont voor onveilige documenten.Scope
Het issue betreft de documentkant (de bron gaat verbatim de editor in). Presentatie-herstel gaat via
parseDecken heeft hetzelfde soort gat; dat is bewust buiten dit issue gehouden en volgt in een aparte wijziging.Bewaker
Niet van toepassing — de wijziging raakt niet het bestandsformaat, de opslag, een afhankelijkheid, uitgaand verkeer of een publieke belofte. Het sluit een bestaande fail-closed poort op een pad dat haar miste; geen nieuwe belofte, geen formaatwijziging.
Regressietest
Twee tests in
test/tabs_settings_provider_coverage_test.dart:<script>in een documentmomentopname → geweigerd, alarm geactiveerd, geen tabblad;javascript:-link in een documentmomentopname zonder bestandspad → geweigerd, label als alarmnaam.Poorten
make check-secrets: gitleaks + trufflehog schoonmake sast: semgrep 0 bevindingentabs_provider.dartverhoogd met motivatie)make checkkon lokaal niet schoon doorlopen door interferentie van een parallelle sessie in dezelfde worktree (branch-switches en oncommitte wijzigingen indocument_editor_screen.dart); CI verifieert de volledige suite in isolatieGenerated with Devin