Security: containmentcache blijft geldig nadat een pad in een externe symlink verandert #1692
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#1692
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?
Kwetsbaarheid
isRenderPathContained cachet de eerste uitkomst permanent per resolved pad. Een ontbrekend/onoplosbaar pad wordt bewust als true opgeslagen. Als dat pad later ontstaat als symlink naar buiten de projectmap, of een bestaande symlink van doel wisselt, blijft de oude true gelden en wordt geen realpathcontrole meer uitgevoerd. De aanname dat symlinktopologie gedurende een sessie vaststaat wordt niet afgedwongen.
Reproductie
Verwacht
Een positieve beslissing mag niet over bestandsidentiteits-/topologiewijzigingen heen leven. Ontbrekende paden worden fail-closed behandeld of de cache wordt gekoppeld aan stat-identiteit en correct geïnvalideerd.
Technische oorzaak
lib/utils/project_path.dart:isRenderPathContained cachet alleen op resolved String. FileSystemException wordt ok=true en die waarde blijft staan; resetRenderContainedCache wordt alleen voor tests aangeboden.
Afbakening
Openbare plaatsing is door de opdrachtgever/repositorybeheerder expliciet geautoriseerd voor directe afhandeling.
Gevonden bij audit van commit
d439638c6b.