CVE-2026-102946
validatedZero produced an exploit or a check.GHSA-4pp3-559j-c5c2 ↗EUVD-2026-102310 ↗
description
joserfc versions before 1.7.4 can treat a General JSON JWS with an empty signature list as authenticated when processed by jws.deserialize_json(). An unauthenticated attacker may cause a relying application to accept attacker-chosen content as genuine if the application processes untrusted General JSON JWS input through that API.
mitigation
Upgrade the joserfc package to version 1.7.4 or later. Until upgraded, reject General JSON JWS inputs whose signature list is empty before calling jws.deserialize_json().
fixed in 1.7.4
outcome
Contextual check: a technique exists and was validated, but no deterministic check could cover this one.
source signals
Public signals that triggered or updated the pipeline. These are inputs for the deltas above.
- 2026-10-15 18:28Zghsa: trigger signal, started the run
- 2026-10-15 18:28Zpublic poc, published 2026-09-09 07:21Z
- 2026-10-15 18:28Zcve.org record for CVE-2026-102946
this entry in the feed
GET /api/v1/feed/CVE-2026-102946
{ "etk_id": "ETK-2026-3058", "cve_id": "CVE-2026-102946", "display_id": "CVE-2026-102946", "ghsa_id": "GHSA-4pp3-559j-c5c2", "euvd_id": "EUVD-2026-102310", "status": "published", "anchor_state": "anchored", "title": "Signature verification bypass in joserfc JWS JSON deserialization", "summary": "joserfc versions before 1.7.4 can treat a General JSON JWS with an empty signature list as authenticated when processed by `jws.deserialize_json()`. An unauthenticated attacker may cause a relying application to accept attacker-chosen content as genuine if the application processes untrusted General JSON JWS input through that API.", "mitigation": "Upgrade the `joserfc` package to version 1.7.4 or later. Until upgraded, reject General JSON JWS inputs whose signature list is empty before calling `jws.deserialize_json()`.", "vendor": "pip", "product": "joserfc", "affected": [ { "affected_notes": [], "affected_ranges": [ "1.7.3" ], "ecosystem": "pip", "fixed_versions": [ "1.7.4" ], "package_name": "joserfc", "purl": "pkg:pypi/joserfc" } ], "cwes": [ 290 ], "cvss_score": 9.1, "cvss_src": "cna_vendor", "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N", "epss_score": null, "epss_percentile": null, "epss_asof": null, "automation": "contextual", "check": true, "check_confidence_basis": "assessed", "exploit": false, "pipeline_minutes": 11.346519983333334, "t0_at": "2026-10-15T18:28:06.913000+00:00", "signals": { "check": { "at": "2026-10-30T08:51:55.005527+00:00", "days": 14.599862182025463, "is_lower_bound": false, "measured_at": "2026-10-15T18:28:06.913000+00:00", "url": null }, "public_poc": { "at": "2026-09-09T07:21:56+00:00", "days": -36.46262630787037, "is_lower_bound": false, "measured_at": "2026-10-15T18:28:06.913000+00:00", "url": "https://github.com/authlib/joserfc/security/advisories/GHSA-4pp3-559j-c5c2" }, "trigger_signal": { "at": "2026-10-15T18:28:06.913000+00:00", "days": 0, "is_lower_bound": false, "measured_at": "2026-10-15T18:28:06.913000+00:00", "url": "https://github.com/authlib/joserfc/security/advisories/GHSA-4pp3-559j-c5c2" } } }
published 2026-10-30 08:40Z
last change 2026-10-30 11:12Z
Need the technical details behind an entry?
Every entry here shows what we attempted and when. The technical details, the generated exploit that fired it and the evidence behind the verdict are not public. Tell us about your use case and we’ll get back to you about extended API access.