Grafiekhydratatie in documenten volgt symlinks de projectmap uit #1640
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#1640
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?
Wat er misgaat
hydrateDocumentChartDatalostsource:op metresolveProjectRelative(lexicaal: geen../, geen absoluut pad). DaarnaFile.readAsStringzonder symlink-realpath. Eendata/chart.jsondie als symlink naar buiten de projectmap wijst, wordt bij export ingelezen en inline in de geëxporteerde body gevouwen — vóór OciWacht.Afbeeldingen op hetzelfde documentpad gebruiken wél
isRenderPathContained/resolveContainedRealPath. De commentaar in de hydratatie zegt „dezelfde insluitingsbewaking als de dia-hydratatie”; die dia-hydratatie heeft hetzelfde lexicale gat, maar het document-exportpad is de plek waar de bytes de deur uit gaan.Waar het zit
lib/services/document_chart_hydration.dart(_inlineBlock).Vergelijk
lib/utils/project_path.dart(isRenderPathContained).Aanvalschets
Een onvertrouwd documentpakket met
images//data/waarindata/x.json→/etc/passwd(of een sleutelbos-bestand). Openen, exporteren (volledig of geredigeerd): de doelinhoud zit in de grafiekspec van de uitvoer.Wat het met het formaat doet
De export is niet meer alleen projectinhoud; bytes van buiten de boom reizen mee in het
.md/HTML/PDF.Regressie
Test met een symlink onder een tijdelijke projectmap;
hydrateDocumentChartDatamoetnull/ongewijzigd blijven, net als een../-pad.