Repository navigation
Require rack >= 3.2.8 and drop stale rack test pins - #128
Draft
LostWarrior wants to merge 1 commit into
Draft
LostWarrior wants to merge 1 commit into
LostWarrior wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
que.gemspec: rack floor>= 2->>= 3.2.8(upper bound< 4unchanged)Gemfile:RACK_VERSIONdefault3.2.7->3.2.8.github/workflows/tests.yml: smoke_test matrix["2.2.5", "3.1"]->["3.2.8"]Why
The gemspec floor of
>= 2permitted rack versions carrying a large number of open advisories, and the smoke_test matrix actively built two of them:Among the high ones: CVE-2025-27610 (LFI in
Rack::Static), CVE-2026-22860 (directory traversal), CVE-2025-46727 (unbounded-parameter DoS inRack::QueryParser), CVE-2026-34230 (quadraticselect_best_encoding). The last two need only a GET, so they are reachable through the metrics server inbin/que, which binds0.0.0.0with no auth.Why these versions
Every known consumer already resolves the same stack:
So the rack 2 leg was testing a configuration no consumer has.
How the pins got stale
All three date from Nov 2024. The matrix started as
["~> 2", "~> 3"](5fcf274), which floated to the newest patch of each line, was tightened to["2.2", "3.1"]then["2.2.5", "3.1"]the same day, and never moved again. The Gemfile default was separately bumped 3.1 -> 3.2.7 on 2026-10-14 in a commit that left the matrix untouched.If we would rather keep dual-major support than match the consumers,
["~> 2.2", "~> 3.2"]restores the float so the pins self-maintain. Happy to switch to that instead.Verification
bundle lockresolves rack 3.2.8 / rackup 2.3.1.bundle auditand OSV.dev both report zero advisories against that resolution. Rubocop clean onGemfileandque.gemspec.Note for reviewers
This raises the gem's declared minimum, so it is a breaking change for compatibility even though no current consumer notices.
Follow-up (not in this PR)
With rack 2 unsupported, these become dead code:
USE_RACKUPand theRack::Handler::Pumabranch,bin/que:16,175rackup "~> 1.0"arm,Gemfile:27-31Left out to keep this PR to dependency constraints only, since those touch the metrics server's runtime path.