Skip to content

test(security): GHSA-g6ww-w5j2-r7x3 Python regression + advisory note#539

Merged
DorianZheng merged 2 commits into
mainfrom
security/ghsa-g6ww-w5j2-r7x3-py-test
May 16, 2026
Merged

test(security): GHSA-g6ww-w5j2-r7x3 Python regression + advisory note#539
DorianZheng merged 2 commits into
mainfrom
security/ghsa-g6ww-w5j2-r7x3-py-test

Conversation

@DorianZheng

Copy link
Copy Markdown
Member

Summary

  • Adds sdks/python/tests/test_readonly_volume_remount.py — replays the published PoC's mount -o remount,rw attack against a read_only=True volume through the Python SDK and asserts the host file is never modified. Python-SDK counterpart of src/boxlite/tests/security_enforcement.rs.
  • Updates SECURITY.md: corrects the Supported Versions table to 0.9.x (0.8.x is vulnerable to this advisory) and adds a Published Advisories section pointing < 0.9.0 users to 0.9.0+ — the only disclosure path reaching C-SDK / build-from-source users with no Dependabot alert.

Relates to GHSA-g6ww-w5j2-r7x3 (Critical, fixed in v0.9.0 by #454). This PR adds no product code — regression coverage + disclosure docs only.

Test plan

  • pytest -m integration sdks/python/tests/test_readonly_volume_remount.py → 1 passed (verified on main @ v0.9.5)
  • Exact unmodified advisory PoC run against patched build → not exploitable
  • cargo nextest run -p boxlite --features krun,gvproxy --test security_enforcement → 2 passed

Add sdks/python/tests/test_readonly_volume_remount.py: replays the
published PoC's remount,rw attack against a read_only volume via the
Python SDK and asserts the host file is never modified. Python-SDK
counterpart of src/boxlite/tests/security_enforcement.rs. Verified
PASSED against current main (v0.9.5) under pytest -m integration.

Update SECURITY.md: correct Supported Versions to 0.9.x (0.8.x is
vulnerable to this advisory) and add a Published Advisories section
pointing <0.9.0 users to 0.9.0+ - the only disclosure path that
reaches C-SDK / build-from-source users with no Dependabot alert.
Comment thread sdks/python/tests/test_readonly_volume_remount.py Fixed
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
@DorianZheng DorianZheng merged commit cac620c into main May 16, 2026
41 checks passed
@DorianZheng DorianZheng deleted the security/ghsa-g6ww-w5j2-r7x3-py-test branch May 16, 2026 10:09
DorianZheng added a commit that referenced this pull request May 20, 2026
…#558)

Brings SDK regression coverage in line with the existing Python tests
(#539 / #540) and the Rust core test
(src/boxlite/src/images/archive/extractor.rs::test_cve_symlink_escape_blocked).

Node (vitest, *.integration.test.ts):
  - security-readonly-volume-remount: mounts a read-only host volume,
    runs `mount -o remount,rw` from inside the box, asserts the host
    file is unchanged. Counterpart of the Python remount test.
  - security-symlink-escape: builds a minimal malicious OCI layout
    inline (hand-rolled USTAR + sha256 + manifest/config/index, no
    new devDeps) and loads it via SimpleBox({ rootfsPath }), asserts
    no host file is written outside the extraction root.

Go (//go:build boxlite_dev, *_integration_test.go):
  - security_readonly_volume_remount: same shape as the Node test,
    using WithVolumeReadOnly + box.Exec.
  - security_symlink_escape: uses stdlib archive/tar to build the
    malicious layer + json for the OCI layout, then
    rt.Create(..., WithRootfsPath(layoutDir)).

C SDK regression coverage is intentionally skipped per
sdks/c/tests/CMakeLists.txt: "lifecycle/execute/streaming/etc. tests
were removed when the C SDK moved to the post-and-drain callback API;
coverage of those code paths now lives in the Go SDK + runner
integration suite." The new Go tests above cover the same C-FFI
machinery from one layer up.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant