Files
antigravity-skills-reference/docs/maintainers/security-findings-triage-2026-03-29-refresh.csv
sickn33 5686fd1669 docs(security): Add refresh CSV export
Add a machine-readable CSV companion for the 2026-03-29 security re-triage so maintainers can consume the refreshed statuses outside the markdown report.\n\nLink the refresh markdown and walkthrough to the new export to keep the historical baseline, addendum, and current-head report aligned.
2026-03-29 17:58:51 +02:00

9.2 KiB

1finding_idtitlecurrent_statuscurrent_pathsvalidation_reasonevidence
21Unsanitized frontmatter name enables path traversal in sync scriptobsolete/not reproducible on current HEADtools/scripts/sync_microsoft_skills.pysync_microsoft_skills.py now sanitizes flat names and constrains delete/copy targets to safe in-repo paths.tools/scripts/tests/test_sync_microsoft_skills_security.py
32Stored XSS via rehype-raw rendering of skill markdownobsolete/not reproducible on current HEADapps/web-app/src/pages/SkillDetail.tsxSkillDetail still renders markdown without rehype-raw; the reported stored-XSS path does not reproduce.apps/web-app/src/pages/SkillDetail.tsx
43Symlink-following copy leaks host files in setup_webobsolete/not reproducible on current HEADtools/scripts/setup_web.jssetup_web.js now uses lstatSync plus resolveSafeRealPath() and skips out-of-root symlinks.tools/scripts/tests/copy_security.test.js
54Insecure install guidance allows remote script executionobsolete/not reproducible on current HEADskills/apify-actorization/SKILL.mdThe Apify skill no longer recommends pipe-to-shell installs or token-on-command-line login.skills/apify-actorization/SKILL.md
65setup_web.js now follows symlinks, enabling file exfiltrationduplicate of another findingtools/scripts/setup_web.jsSame root cause/fix area as finding 3.tools/scripts/setup_web.js
76Symlink traversal in web asset setup copies arbitrary filesduplicate of another findingtools/scripts/setup_web.jsSame root cause/fix area as finding 3.tools/scripts/setup_web.js
87Symlink file copying in .github/skills sync leaks host filesobsolete/not reproducible on current HEADtools/scripts/sync_microsoft_skills.pyMicrosoft sync now rejects unsafe symlink targets and only accepts safe regular files that stay within the cloned source root.tools/scripts/tests/test_sync_microsoft_skills_security.py
98Symlinked file copy in Microsoft skill sync can leak host dataduplicate of another findingtools/scripts/sync_microsoft_skills.pySame root cause/fix area as finding 7.tools/scripts/sync_microsoft_skills.py
109Committed Python bytecode can hide malicious logicobsolete/not reproducible on current HEADskills/ui-ux-pro-max/scripts/__pycache__Tracked __pycache__ artifacts are absent on current main and repo hygiene tests fail if they reappear.tools/scripts/tests/repo_hygiene_security.test.js
1110Symlinked SKILL.md can leak host files via index scriptobsolete/not reproducible on current HEADtools/scripts/generate_index.pygenerate_index.py now ignores symlinked SKILL.md files during index generation.tools/scripts/tests/test_frontmatter_parsing_security.py
1211Example loader trusts manifest paths, enabling file readobsolete/not reproducible on current HEADdocs/integrations/jetski-gemini-loader/loader.mjsThe Jetski loader rejects symlinked skill directories/files and any resolved SKILL.md outside the configured skills root.tools/scripts/tests/jetski_gemini_loader.test.cjs
1312TLS certificate verification disabled in new scrapersobsolete/not reproducible on current HEADskills/junta-leiloeiros/scripts/scraper/base_scraper.py | skills/junta-leiloeiros/scripts/web_scraper_fallback.pyTLS verification is enabled by default again; insecure behavior requires an explicit opt-out environment flag.skills/junta-leiloeiros/scripts/scraper/base_scraper.py
1413Complete bundle omits valid skill categoriesobsolete/not reproducible on current HEADtools/lib/skill-filter.js | tools/scripts/build-catalog.js | data/bundles.jsonThe old helper-path omission still does not drive shipped bundle output; current bundles come from build-catalog.js.tools/scripts/build-catalog.js
1514Malformed frontmatter delimiter breaks YAML parsing for skillsobsolete/not reproducible on current HEADskills/alpha-vantage/SKILL.mdThe malformed --- Unknown frontmatter regression is no longer present in alpha-vantage.tools/scripts/tests/repo_hygiene_security.test.js
1615ws_listener writes sensitive events to predictable /tmp filesobsolete/not reproducible on current HEADskills/videodb/scripts/ws_listener.pyws_listener.py now defaults to a user-owned state directory and uses secure file creation.tools/scripts/tests/local_temp_safety.test.js
1716Symlink traversal lets /skills/ serve arbitrary local filesobsolete/not reproducible on current HEADapps/web-app/refresh-skills-plugin.jsrefresh-skills-plugin.js resolves real paths under the skills root before serving /skills/*; the public Pages app no longer exposes the maintainer sync surface.apps/web-app/refresh-skills-plugin.js
1817Sync Skills endpoint follows symlinks from downloaded archiveduplicate of another findingapps/web-app/refresh-skills-plugin.jsSame root cause/fix area as finding 16.apps/web-app/refresh-skills-plugin.js
1918Validation crash if YAML frontmatter is not a mappingobsolete/not reproducible on current HEADtools/scripts/validate_skills.pyvalidate_skills.py now rejects non-mapping YAML frontmatter cleanly instead of crashing downstream validation.tools/scripts/tests/test_frontmatter_parsing_security.py
2019Anonymous Supabase writes allow skill star tamperingobsolete/not reproducible on current HEADapps/web-app/src/hooks/useSkillStars.ts | apps/web-app/src/lib/supabase.tsuseSkillStars now stores saves locally in the browser and no longer performs shared frontend writes through the public Supabase client.apps/web-app/src/hooks/useSkillStars.ts
2120Metadata fixer overwrites symlinked SKILL.md targetsobsolete/not reproducible on current HEADtools/scripts/fix_skills_metadata.pyfix_skills_metadata.py now skips symlinked SKILL.md files and non-mapping frontmatter.tools/scripts/fix_skills_metadata.py
2221Installer now dereferences symlinks during copyobsolete/not reproducible on current HEADtools/bin/install.jsinstall.js now uses lstatSync plus resolveSafeRealPath() and skips symlinks that resolve outside the cloned repo root.tools/scripts/tests/copy_security.test.js
2322Installer merge path dereferences symlinks when copyingduplicate of another findingtools/bin/install.jsSame root cause/fix area as finding 21.tools/bin/install.js
2423Cleanup sync deletes arbitrary paths via flat_nameduplicate of another findingtools/scripts/sync_microsoft_skills.pySame root cause/fix area as finding 1.tools/scripts/sync_microsoft_skills.py
2524Audio transcription example allows Python code injectionobsolete/not reproducible on current HEADskills/audio-transcriber/examples/basic-transcription.shThe audio transcription example now uses a quoted heredoc and passes values via environment variables.skills/audio-transcriber/examples/basic-transcription.sh
2625Unbounded recursive skill traversal can crash catalog buildobsolete/not reproducible on current HEADtools/lib/skill-utils.js | tools/scripts/build-catalog.jsThe claimed recursive symlink traversal in catalog discovery still does not reproduce on current code paths.tools/lib/skill-utils.js
2726Release scripts still use root skills_index.json pathobsolete/not reproducible on current HEADtools/scripts/update_readme.py | tools/scripts/generate_index.py | tools/scripts/release_workflow.jsRoot skills_index.json remains the canonical generated index, so the reported release-script path mismatch does not reproduce.tools/scripts/release_workflow.js
2827Symlink traversal in skill normalization allows file overwriteobsolete/not reproducible on current HEADtools/lib/skill-utils.js | tools/scripts/normalize-frontmatter.jsskill-utils.js now relies on lstatSync-based safe directory/file discovery, so normalization does not treat symlinked skill folders as writable local skills.tools/lib/skill-utils.js
2928last30days skill passes user input directly to Bash commandobsolete/not reproducible on current HEADskills/last30days/SKILL.mdThe last30days skill still passes user input as a quoted value through a temp file, so the reported direct shell-injection sink does not reproduce.skills/last30days/SKILL.md
3029Unvalidated YAML frontmatter can crash index generationduplicate of another findingtools/scripts/generate_index.pySame root cause/fix area as finding 18.tools/scripts/generate_index.py
3130Predictable /tmp counter file enables local file clobberingobsolete/not reproducible on current HEADskills/cc-skill-strategic-compact/suggest-compact.shThe strategic compact hook now stores state under XDG_STATE_HOME instead of predictable shared /tmp paths.tools/scripts/tests/local_temp_safety.test.js
3231Symlink traversal risk in new sync scriptobsolete/not reproducible on current HEADtools/scripts/sync_recommended_skills.shsync_recommended_skills.sh now preserves symlinks with cp -RP and avoids the destructive glob-delete pattern from the original report.tools/scripts/tests/repo_hygiene_security.test.js
3332skills_manager allows path traversal in enable/disable operationsobsolete/not reproducible on current HEADtools/scripts/skills_manager.pyskills_manager.py now resolves candidate paths relative to the intended base directory and rejects traversal attempts.tools/scripts/tests/test_skills_manager_security.py
3433Zip Slip risk in Office unpack scriptsobsolete/not reproducible on current HEADskills/docx-official/ooxml/scripts/unpack.py | skills/pptx-official/ooxml/scripts/unpack.pyThe Office unpack helpers now validate archive members and reject traversal/symlink-style entries before extraction.tools/scripts/tests/test_office_unpack_security.py