-
-
Notifications
You must be signed in to change notification settings - Fork 244
Three new (activity_notification, graphql, spree_api) gem advisories #1183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jasnow
wants to merge
2
commits into
rubysec:master
Choose a base branch
from
jasnow:july-26a-updates
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+133
−0
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| --- | ||
| gem: activity_notification | ||
| ghsa: h5xx-m7vj-5vg2 | ||
| url: https://github.com/simukappu/activity_notification/security/advisories/GHSA-h5xx-m7vj-5vg2 | ||
| title: SQL Injection via custom_filter in Bulk Notification Endpoints | ||
| date: 2026-07-11 | ||
| description: | | ||
| ## Summary | ||
|
|
||
| The notifications_api_controller.rb bulk endpoints (open_all and | ||
| destroy_all) pass unfiltered request parameters to filtered_by_options, | ||
| which passes a custom_filter value directly to ActiveRecord's where() | ||
| as a raw SQL string. An unauthenticated attacker can inject arbitrary | ||
| SQL conditions, enabling mass data modification, mass data deletion, | ||
| and information disclosure via boolean-based exfiltration. | ||
| patched_versions: | ||
| - ">= 2.7.0" | ||
| related: | ||
| url: | ||
| - https://rubygems.org/gems/activity_notification/versions/2.7.0 | ||
| - https://github.com/simukappu/activity_notification/compare/v2.6.1...v2.7.0 | ||
| - https://github.com/simukappu/activity_notification/security/advisories/GHSA-h5xx-m7vj-5vg2 | ||
| notes: | | ||
| - Project GHSA has "Critical" severity, but no CVE or cvss values. | ||
| - date value from rubygems.org URL | ||
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| --- | ||
| gem: graphql | ||
| ghsa: j7xr-4g94-r9h3 | ||
| url: https://github.com/rmosolgo/graphql-ruby/security/advisories/GHSA-j7xr-4g94-r9h3 | ||
| title: 'Authorization Bypass in Execution::Next' | ||
| date: 2026-07-21 | ||
| description: | | ||
| ## Impact | ||
|
|
||
| In GraphQL-Ruby < v2.6.6, when using Execution::Next, authorization | ||
| failures did not properly halt execution for fields using | ||
| GraphQL::Schema::Resolver (and its subclasses, including | ||
| GraphQL::Schema::Mutation, GraphQL::Schema::RelayClassicMutation, | ||
| and GraphQL::Schema::Subscription) when they raised | ||
| GraphQL::UnauthorizedErrors. | ||
| Other forms of authorization were applied correctly. | ||
|
|
||
| If your application uses Execution::Next, update | ||
| GraphQL-Ruby to v2.6.6 or later. | ||
|
|
||
| ## Credit | ||
|
|
||
| This issue was discovered with the GitHub Security Lab Taskflow Agent | ||
| as part of Project Glasswing, a cross-industry initiative to secure | ||
| critical open-source software using frontier AI models, and manually | ||
| verified by GHSL team member: @anticomputer. | ||
| unaffected_versions: | ||
| - "< 2.5.23" | ||
| patched_versions: | ||
| - ">= 2.6.6" | ||
| related: | ||
| url: | ||
| - https://rubygems.org/gems/graphql/versions/2.6.6 | ||
| - https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md#266-21-jul-2026 | ||
| - https://github.com/rmosolgo/graphql-ruby/compare/v2.6.5...v2.6.6 | ||
| - https://github.com/GitHubSecurityLab/seclab-taskflow-agent | ||
| - https://www.anthropic.com/glasswing | ||
| - https://github.com/rmosolgo/graphql-ruby/security/advisories/GHSA-j7xr-4g94-r9h3 | ||
| notes: | | ||
| - Note that gem name is "grahhql" but repo name is "graphql-ruby". | ||
| - Project GHSA has "High" severity. | ||
| - No CVE in project GHSA so no cvss values. | ||
| - date value from rubygems.org URL. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| --- | ||
| gem: spree_api | ||
| ghsa: 4825-p4xm-pcf2 | ||
| url: https://github.com/spree/spree/security/advisories/GHSA-4825-p4xm-pcf2 | ||
| title: Broken Access Control in `PATCH /api/v3/store/carts/:id/associate` (IDOR) | ||
| date: 2026-07-20 | ||
| description: | | ||
| ## Summary | ||
|
|
||
| The Store API v3 endpoint PATCH /api/v3/store/carts/:id/associate binds | ||
| a guest cart to the authenticated caller without verifying possession | ||
| of that cart. It locates the cart by prefixed ID only — | ||
| current_store.carts.where(user: [nil, current_user]).find_by_prefix_id!( | ||
| params[:id]) — and omits the authorize!(:update, @cart, cart_token) | ||
| check that every other action in the controller performs via CartResolvable. | ||
| Because prefixed IDs are a reversible Sqids encoding of the auto-increment | ||
| primary key (obfuscation, not a token), an authenticated customer can | ||
| name arbitrary guest cart IDs, take them over, and read the checkout | ||
| addresses stored on them. This is broken access control / IDOR, | ||
| reachable by any low-privilege registered user. | ||
|
|
||
| ## Severity | ||
|
|
||
| Requires an authenticated store account and depends on target guest | ||
| carts already carrying an address and not yet being associated, on a | ||
| store not running in login_required mode. Confidentiality impact is | ||
| the driver (guest checkout PII); integrity impact is limited and | ||
| recoverable (cart reassignment + email overwrite on an in-progress | ||
| cart). Not Critical: the action is gated behind authentication (PR:L, not | ||
| PR:N) and constrained by cart state, so it is not anonymously exploitable. | ||
|
|
||
| ## Impact | ||
|
|
||
| Confidentiality: an authenticated attacker can enumerate guest cart | ||
| IDs and read checkout PII (name, street, postal code, phone) on carts | ||
| they don't own. Integrity: limited and recoverable — each call reassigns | ||
| the guest cart and overwrites its email, disrupting the original | ||
| guest's in-progress cart. Requires a registered account, so not | ||
| anonymously exploitable. | ||
|
|
||
| ## Remediation | ||
|
|
||
| Update to Spree 5.4.4 or 5.5.4. | ||
|
|
||
| Your storefront, based on https://github.com/spree/storefront, | ||
| doesn't need any updates because it has always sent a cart | ||
| token when associating carts; this is a backend issue. | ||
| cvss_v3: 7.1 | ||
| unaffected_versions: | ||
| - "< 5.4.0" | ||
| patched_versions: | ||
| - "~> 5.4.4" | ||
| - ">= 5.5.4" | ||
| related: | ||
| url: | ||
| - https://rubygems.org/gems/spree_api/versions/5.5.4 | ||
| - https://github.com/spree/spree/releases/tag/v5.5.4 | ||
|
jasnow marked this conversation as resolved.
|
||
| - https://rubygems.org/gems/spree_api/versions/5.4.4 | ||
| - https://github.com/spree/spree/releases/tag/v5.4.4 | ||
| - https://github.com/spree/spree/security/advisories/GHSA-4825-p4xm-pcf2 | ||
| notes: | | ||
| - NOTE: Gem name is "spree_api" but repo name is "spree". | ||
| - cvss_v3 from project GHSA | ||
| - No CVE in project GHSA | ||
| - date field is rubygems.org release date. | ||
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.
Uh oh!
There was an error while loading. Please reload this page.