Lookup for vulnerable packages by Package URL.

Purlpkg:gem/decidim-comments@0.30.1
Typegem
Namespace
Namedecidim-comments
Version0.30.1
Qualifiers
Subpath
Is_vulnerabletrue
Next_non_vulnerable_version0.30.5
Latest_non_vulnerable_version0.31.1
Affected_by_vulnerabilities
0
url VCID-afrd-7jmp-fqdv
vulnerability_id VCID-afrd-7jmp-fqdv
summary
Decidim's comments API allows access to all commentable resources
### Impact

The root level `commentable` field in the API allows access to all
commentable resources within the platform, without any permission
checks. All Decidim instances are impacted that have not secured
the `/api` endpoint. The `/api` endpoint is publicly available
with the default configuration.

### Patches

Not available

### Workarounds

To mitigate the issue, you can limit the scope to only authenticated
users by limiting access to the `/api` endpoint. This would require
custom code or installing the 3rd party module `Decidim::Apiauth`.

With custom code, the `/api` endpoint can be limited to only
authenticated users with the following code (needs to run during
application initialization):

```ruby
# Within your application
# config/initializers/limit_api_access.rb

module LimitApiAccess
  extend ActiveSupport::Concern

  included do
    prepend_before_action do |controller|
      unless controller.send(:user_signed_in?)
        render plain: I18n.t("actions.login_before_access",
          scope: "decidim.core"), status: :unauthorized
      end
    end
  end
end

Rails.application.config.to_prepare do
  Decidim::Api::ApplicationController.include(LimitApiAccess)
end
```

Please note that this would only disable public access to the API
and all authenticated users would be still able to exploit the
vulnerability. This may be sufficient for some installations,
but not for all.

Another workaround is to limit the availability of the `/api` endpoint
to only trusted ranges of IPs that need to access the API. The
following Nginx configuration would help limiting the API access
to only specific IPs:

```
location /api {
  allow 192.168.1.100;
  allow 192.168.1.101;
  deny all;
}
```

The same configuration can be also used without the `allow`
statements to disable all traffic to the the `/api` endpoint.

When considering a workaround and the seriousness of the vulnerability,
please consider the nature of the platform. If the platform is primarily
serving public data, this vulnerability is not serious by its nature.
If the platform is protecting some resources, e.g. inside private
participation spaces, the vulnerability may expose some data to
the attacker that is not meant public.

If you have enabled the organization setting "Force users to
authenticate before access organization", the scope of this
vulnerability is limited to the users who are allowed to log in
to the Decidim platform. This setting was introduced in version
0.19.0 and it was applied to the `/api` endpoint in version 0.22.0.
references
0
reference_url https://api.first.org/data/v1/epss?cve=CVE-2026-40870
reference_id
reference_type
scores
0
value 0.00045
scoring_system epss
scoring_elements 0.14256
published_at 2026-06-09T12:55:00Z
1
value 0.00045
scoring_system epss
scoring_elements 0.14235
published_at 2026-06-08T12:55:00Z
2
value 0.00045
scoring_system epss
scoring_elements 0.14351
published_at 2026-06-05T12:55:00Z
3
value 0.00045
scoring_system epss
scoring_elements 0.14354
published_at 2026-06-06T12:55:00Z
4
value 0.00045
scoring_system epss
scoring_elements 0.14316
published_at 2026-06-07T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2026-40870
1
reference_url https://github.com/decidim/decidim/security/advisories/GHSA-ghmh-q25g-gxxx
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3
scoring_elements
1
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
2
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2026-04-21T19:52:03Z/
url https://github.com/decidim/decidim/security/advisories/GHSA-ghmh-q25g-gxxx
2
reference_url https://nvd.nist.gov/vuln/detail/CVE-2026-40870
reference_id CVE-2026-40870
reference_type
scores
url https://nvd.nist.gov/vuln/detail/CVE-2026-40870
3
reference_url https://github.com/rubysec/ruby-advisory-db/blob/master/gems/decidim-api/CVE-2026-40870.yml
reference_id CVE-2026-40870.YML
reference_type
scores
url https://github.com/rubysec/ruby-advisory-db/blob/master/gems/decidim-api/CVE-2026-40870.yml
4
reference_url https://github.com/rubysec/ruby-advisory-db/blob/master/gems/decidim-comments/CVE-2026-40870.yml
reference_id CVE-2026-40870.YML
reference_type
scores
url https://github.com/rubysec/ruby-advisory-db/blob/master/gems/decidim-comments/CVE-2026-40870.yml
5
reference_url https://github.com/advisories/GHSA-ghmh-q25g-gxxx
reference_id GHSA-ghmh-q25g-gxxx
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-ghmh-q25g-gxxx
fixed_packages
0
url pkg:gem/decidim-comments@0.30.5
purl pkg:gem/decidim-comments@0.30.5
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/decidim-comments@0.30.5
1
url pkg:gem/decidim-comments@0.31.1
purl pkg:gem/decidim-comments@0.31.1
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:gem/decidim-comments@0.31.1
aliases CVE-2026-40870, GHSA-ghmh-q25g-gxxx
risk_score 4.0
exploitability 0.5
weighted_severity 8.0
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-afrd-7jmp-fqdv
Fixing_vulnerabilities
Risk_score4.0
Resource_urlhttp://public2.vulnerablecode.io/packages/pkg:gem/decidim-comments@0.30.1