Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

v0.2.2 #300

May 18, 2026 · 0 comments
Discussion options

2026年05月18日 Release v0.2.2


🛡️ Security Fixes

  • hypervisor: vmm-sys-util bumped 0.11.x → 0.12.1 (CVE-2023-50711, GHSA-875g-mfp6-g7f9): FamStructWrapper::deserialize previously failed to verify that the header length matched the flexible-array length, allowing out-of-bounds memory access from safe Rust code. Pinned to the workspace version already used by every other hypervisor crate.
  • agent / hypervisor: bytes and env_logger security bumps — additional dependency refreshes from the same CVE-fix pass (CVE fix #267 ).
  • Reverted time crate bump (CVE-2026-25727 / GHSA-r6v5-fh4h-64xc) (Revert "deps(rust): bump time to 0.3.47 to fix CVE-2026-25727" #286 ): Analysis confirmed that CubeSandbox only uses time::format_description::well_known::Rfc3339 for outbound timestamp formatting and never invokes Rfc2822 parsing on untrusted input — the affected attack vector is not reachable. The upgrade was rolled back because it requires an MSRV bump and will be addressed separately when the project is ready.

🚀 Critical Fixes

  • Fixed duplicate template-image job creation (CubeMaster) (fix(template_image): add request_id field to prevent duplicate job creation #227 ): A new request_id column with a unique index on (request_id, operation) makes job submissions idempotent. Migration logic handles existing records with legacy IDs. Eliminates the race where concurrent or retried API calls could enqueue the same build twice.
  • Fixed cubecli exec nil-deref panic on stdin EOF (fix(cubecli): nil-deref panic in exec StdinCloser on stdin EOF #188 ): StdinCloser.Read previously triggered a nil-pointer dereference when stdin reached EOF, silently aborting the exec lifecycle. The fix correctly handles EOF and switches to errors.Is(err, io.EOF) for proper error-wrapping compatibility. Shim logs now emit the expected paired exec req / wait container ... exit code entries.
  • Fixed ext4 artifact runtime file materialization for PVM templates (Fix ext4 artifact runtime file materialization for PVM templates #282 ): RefreshArtifactRuntimeFiles, validateArtifactRuntimeFilesPresent, and ensureArtifactRuntimeFiles are simplified to handle only kernel files; copyKernelFileAtomically is renamed to CopyFileAtomically for reuse outside the package. Unit tests are updated and pruned accordingly.

✨ Enhancements

  • E2B-compatible default exposed port (Change default exposed port to 49983 for E2B compatibility #207 ): The default sandbox exposed port is changed from 8080/32000 to 49983 to match the E2B sandbox protocol. CubeMaster is now the single authoritative source of default exposed ports — hardcoded defaults and port-seeding logic are removed from Cubelet and network-agent, preventing silent divergence.
  • cubelet: cmdTimeout configurable via storage plugin config (storage: make cmdTimeout configurable via plugin config #236 ): A new optional cmd_timeout field in the storage plugin TOML config replaces the hardcoded 3 s default. Multi-GiB ext4 operations on the live-create slow path under concurrent load can exceed 3 s; operators can now raise the limit without recompiling. Default behavior is unchanged when the field is absent.
  • cubelet: richer diagnostics on newExt4RawByReflinkCopy failures (cubelet: add diagnostic context to newExt4RawByReflinkCopy errors #237 ): Error messages now include elapsed time, target/base file stats, and free space in the format [step=N/4 cmd="..." elapsed=...ms target=size=... base=size=... free=...B]. Stat/statfs errors are reported inline. Unit tests are added for describeStorageFailure / describeFile / describeFreeBytes.
  • Deploy: sync CubeMaster custom ports with .env config (feat(deploy): sync cubemaster custom ports with .env config #210 ): cubemaster.yaml now uses __CUBE_SANDBOX_MYSQL_PORT__ and __CUBE_SANDBOX_REDIS_PORT__ placeholders; install.sh substitutes them from the .env file, enabling non-default MySQL/Redis ports without manual YAML edits.

⚙️ Engineering Improvements


🤖 CI / DevOps


📚 Documentation


🙏 Contributors

Thanks to everyone who contributed to v0.2.2: @fslongjin, @foxywang, @cocovs, @WaylandYang, @chenggui53, @luzhixing12345, @turtlemoji, @QingqLin, @chenhengqi, @Dafeigy.

Full Changelog: v0.2.1...v0.2.2


This discussion was created from the release v0.2.2.
You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant

AltStyle によって変換されたページ (->オリジナル) /