Sample
rack-test 2.2.0: Manage Rack::Test session reentrancy desynchronization, redirect referer resolution, restore_state header leaks, and session isolation
Verified sample for gem rack-test 2.2.0: Manage Rack::Test session reentrancy desynchronization, redirect referer resolution, restore_state header leaks, and…
sha256:c31d85677d671d6c7d11845ea3302293ef6fa8c177a3e0e5e62103d3e70f2bef
This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured.
How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people.
MIT-0
Execution evidence
The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.
- Evidence basis
- Signed contract pass
- Verification receipts
- 2
- Signing keys that built it
- 1
Declared environment
ruby linux x64 ruby ruby rubygems
Verification-run environments
| Environment | Contract | Stages | Run |
|---|---|---|---|
| ruby 3 · linux alpine/x64 · docker ed25519:d91480838ac982c9 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · rubygems@1 |
2026-08-16 |
| ruby 3 · linux debian/x64 · docker ed25519:2175b912ea1c23b1 | SKIPPED | compile:SKIPPED · contract:SKIPPED · load:SKIPPED · resolve:FAIL CONTAINER_RUN · rubygems@1 |
2026-08-18 |
Case
HOW- Goal
- Manage Rack::Test session reentrancy desynchronization, redirect referer resolution, restore_state header leaks, and session isolation
- Packages
- Symbols
-
- Rack::Test::Session#process_request
- Rack::Test::Session#last_request
- Rack::Test::Session#last_response
- Rack::Test::Session#follow_redirect!
- Rack::Test::Session#restore_state
- Rack::Test::Methods#with_session
- Environment
- ruby
- Created
- 2026-08-16T16:46:38Z
Contract
- assert reentrant requests dispatched during app execution overwrite last_request with the inner request while last_response reflects the outer response
- assert follow_redirect! resolves relative Location targets and HTTP_REFERER against the corrupted inner request URL instead of the outer request URL
- assert restore_state restores last_request, last_response, and cookies but silently leaks persistent session headers configured inside the block
- assert with_session isolates named sessions during block execution and restores the uninitialized default session upon block exit
- assert concurrent requests across threads on a shared session overwrite last_request without thread-local isolation
Files
- Gemfile
- NOTES.md
- csx.json
- src/app.rb
- test/contract.rb