[PR #1628] [MERGED] docs(hopper): clarify lease directory recovery guidance #4712

Closed
opened 2026-10-31 00:54:15 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1628
Author: @Sunil56224972
Created: 10/10/2026
Status: ✅ Merged
Merged: 10/14/2026
Merged by: @N0zoM1z0

Base: main ← Head: security/fix-3-critical-vulnerabilities


📝 Commits (10+)

  • 6218677 fix: patch 3 critical security vulnerabilities (TOCTOU, symlink bypass, credential exposure)
  • 3565a34 fix: patch 3 critical security vulnerabilities (TOCTOU, symlink bypass, credential exposure)
  • 9d47811 fix: patch 3 critical security vulnerabilities (TOCTOU, symlink bypass, credential exposure)
  • 03731c5 fix: patch 3 critical security vulnerabilities (TOCTOU, symlink bypass, credential exposure)
  • 85cffcc fix(security): reconcile main and enforce descriptor identity
  • dc3d64f chore: merge current main before Hopper security followup
  • 26e6285 fix(security): preserve cancellation and verify lease ownership
  • d11fe67 fix(ci): isolate Linux Hopper process fixture inventory
  • 51f61b7 chore: refresh PR #1628 with main
  • 1b49364 chore: sync PR #1628 with latest main

📊 Changes

1 file changed (+4 additions, -4 deletions)

View changed files

📝 docs/installation.md (+4 -4)

📄 Description

The Hopper security implementation and its owning regressions from this PR are already present on main through 599a8ee11 (fix(process): preserve cleanup ownership and normalize captures once), which explicitly records #1628 among its reviewed fixes. Synchronizing this branch therefore leaves no duplicate production-code or test diff.

This final change resolves the remaining review finding in the owning installation guide. Recovery guidance now applies specifically when opening the Hopper lease directory fails with a permission error. Earlier creation failures, including an unsearchable parent, keep their separate diagnostic and are no longer covered by that promise.

The integrated behavior on main still provides the original outcome:

  • unsuccessful Hopper launches remove token-bearing bootstrap files, including cancellation paths;
  • the no-O_NOFOLLOW snapshot fallback verifies the named leaf, opened descriptor, final leaf identity, and caller cancellation;
  • Hopper lease permissions are changed and rechecked through the admitted directory descriptor;
  • production-boundary regressions cover bootstrap cleanup, snapshot fallback cancellation, lease admission, and descriptor replacement.

Validation on final head 3986dfc91:

  • focused owning-boundary selection: 27 passed, with four explicit native-Windows skips on Linux;
  • npm run check:fast: passed;
  • npm run docs:check: passed, including README consistency;
  • GitHub required CI: 7 passed, 21 correctly skipped for the docs-only net diff;
  • Greptile: passed; all review threads resolved.

Earlier real-provider verification used the official Hopper 6.4.2 demo on Ubuntu 24.04 against /usr/bin/true; public CLI analysis completed with the target digest unchanged and clean teardown. Native Windows and macOS execution of the original security paths was not independently rerun for this final docs-only head.

Original work by Sunil remains in the PR history. The follow-up review, implementation, reconciliation, and verification retain the requested Kaoru0822 co-author metadata.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1628 **Author:** [@Sunil56224972](https://github.com/Sunil56224972) **Created:** 10/10/2026 **Status:** ✅ Merged **Merged:** 10/14/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `security/fix-3-critical-vulnerabilities` --- ### 📝 Commits (10+) - [`6218677`](https://github.com/morluto/rea/commit/6218677428047f95d9353a479ec562b3250373da) fix: patch 3 critical security vulnerabilities (TOCTOU, symlink bypass, credential exposure) - [`3565a34`](https://github.com/morluto/rea/commit/3565a3448fdd0aa535ec0664cdb820e5c8dc74df) fix: patch 3 critical security vulnerabilities (TOCTOU, symlink bypass, credential exposure) - [`9d47811`](https://github.com/morluto/rea/commit/9d478117e44df9d76e081e3f7851147901cfd2e2) fix: patch 3 critical security vulnerabilities (TOCTOU, symlink bypass, credential exposure) - [`03731c5`](https://github.com/morluto/rea/commit/03731c5aa63a71251ed9a3c6e4c777a6b09ab8ae) fix: patch 3 critical security vulnerabilities (TOCTOU, symlink bypass, credential exposure) - [`85cffcc`](https://github.com/morluto/rea/commit/85cffcc2781b5ec8d334b123ebcf724fb4b8c7b5) fix(security): reconcile main and enforce descriptor identity - [`dc3d64f`](https://github.com/morluto/rea/commit/dc3d64fb01b93a15c12a4cd94e97b2c8a3d89d1c) chore: merge current main before Hopper security followup - [`26e6285`](https://github.com/morluto/rea/commit/26e62857b38c13aa7a8f04e68f68123c214f26e2) fix(security): preserve cancellation and verify lease ownership - [`d11fe67`](https://github.com/morluto/rea/commit/d11fe6778587eb6697cb9baedf5d8c6e0cf1d305) fix(ci): isolate Linux Hopper process fixture inventory - [`51f61b7`](https://github.com/morluto/rea/commit/51f61b7fbd437549b9e8a2709ae0712eb9aceae2) chore: refresh PR #1628 with main - [`1b49364`](https://github.com/morluto/rea/commit/1b493643b55129791f11edcb67ed36475d86cbac) chore: sync PR #1628 with latest main ### 📊 Changes **1 file changed** (+4 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `docs/installation.md` (+4 -4) </details> ### 📄 Description The Hopper security implementation and its owning regressions from this PR are already present on `main` through `599a8ee11` (`fix(process): preserve cleanup ownership and normalize captures once`), which explicitly records #1628 among its reviewed fixes. Synchronizing this branch therefore leaves no duplicate production-code or test diff. This final change resolves the remaining review finding in the owning installation guide. Recovery guidance now applies specifically when opening the Hopper lease directory fails with a permission error. Earlier creation failures, including an unsearchable parent, keep their separate diagnostic and are no longer covered by that promise. The integrated behavior on `main` still provides the original outcome: - unsuccessful Hopper launches remove token-bearing bootstrap files, including cancellation paths; - the no-`O_NOFOLLOW` snapshot fallback verifies the named leaf, opened descriptor, final leaf identity, and caller cancellation; - Hopper lease permissions are changed and rechecked through the admitted directory descriptor; - production-boundary regressions cover bootstrap cleanup, snapshot fallback cancellation, lease admission, and descriptor replacement. Validation on final head `3986dfc91`: - focused owning-boundary selection: 27 passed, with four explicit native-Windows skips on Linux; - `npm run check:fast`: passed; - `npm run docs:check`: passed, including README consistency; - GitHub required CI: 7 passed, 21 correctly skipped for the docs-only net diff; - Greptile: passed; all review threads resolved. Earlier real-provider verification used the official Hopper 6.4.2 demo on Ubuntu 24.04 against `/usr/bin/true`; public CLI analysis completed with the target digest unchanged and clean teardown. Native Windows and macOS execution of the original security paths was not independently rerun for this final docs-only head. Original work by Sunil remains in the PR history. The follow-up review, implementation, reconciliation, and verification retain the requested Kaoru0822 co-author metadata. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 00:54:15 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4712
No description provided.