Skip to content

Build2 publishers2 min readPublished

Attackers began probing WSO2's JWT bypass 133 days after the fixes went out

WSO2 published the fix in May. watchTowr saw forged tokens arrive at its honeypot in September. Its own replay against a correctly targeted deployment came back with the credentials the gateway holds.

The Engineer · Build desk

Photograph accompanying Attackers began probing WSO2's JWT bypass 133 days after the fixes went out
Photo: cyberdaily.au

What happened

  • WSO2's advisory for CVE-2026-5430, published on May 3 and scored CVSS 10, says JWT authentication can be bypassed when a token is signed using an unsupported algorithm, leading to full account takeover.
  • The affected list covers WSO2 API Manager at six versions from 4.1.0 to 4.6.0, plus API Control Plane, Traffic Manager and Universal Gateway at 4.5.0 and 4.6.0.
  • watchTowr observed initial exploitation attempts on September 13, and in its honeypot network the attacker sent the forged JWT to the wrong product, where the bypass was not reported as successful.
  • Replaying the same payload against the correct target product gave the researchers API backend destinations, credentials, and the consumer keys and secrets of registered applications.
  • WSO2 adjusts the score down to 9.8 for single-tenant deployments, on the grounds that the impact stays inside a single security authority boundary.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • exposure Rotation of consumer keys and secrets is the second half of the remediation. The product is an aggregation point for internal services and credentials, so anything harvested through the bypass keeps working through a trusted gateway after the verifier is fixed.
  • constraint Segmentation alone leaves the authentication process reachable: according to the dev.to writeup, putting the management console on a private network does not close the path where other APIs are configured to accept the vulnerable tokens.
  • decision Whether a team can answer "were we hit" depends on whether its logging ever captured JWT header fields, so shops that log URLs only end up with a patch and no finding.
  • contradiction Anyone pricing an emergency change window is pricing a proven technique with no published victim. watchTowr verified the bypass in its own replay while the attempt it observed in the wild failed, and public reporting shows no confirmed subsequent compromise.

The advisory states the condition and not the code path. Authentication is bypassed when the JWT is signed using an unsupported algorithm [1]. A verifier that handles that case correctly treats an unrecognised alg as a terminal failure and ends the request. On the affected versions the request continues into an authenticated context [1]. The published vector supplies the rest of the precondition: AV:N, AC:L, PR:N, UI:N [2]. Nothing has to be phished and nobody has to click, which is why the dev.to writeup expects business users to notice no anomaly at all [15]. The attacker needs a route to the vulnerable JWT authentication process, from the internet or from any reachable network [14].

Two vectors are published for the same CVE, and one metric moves between them. The 10 uses S:C. The 9.8 for single-tenant deployments uses S:U, with AV:N/AC:L/PR:N/UI:N and C:H/I:H/A:H identical in both strings [20]. WSO2 says the adjustment reflects that the impact is contained within a single security authority boundary [6]. The gap between the two scores is 0.2 points [24].

The advisory is at version 1.0.0 and credits the Hacktron Team with reporting the issue [3][8]. The first exploitation attempts watchTowr observed came 133 days after it was published [19].

A forged token aimed at a product that does not have the flaw is what untargeted scanning looks like. A miss in your own logs does not establish that a correctly aimed request would also miss [10].

The solution section gives subscription holders an update level to reach, and community users the public fixes, with migration to an unaffected version as the fallback [7]. Credential rotation is absent from it. Updating repairs the verifier, but the consumer keys and secrets of registered applications that the replay recovered keep working after the update [12].

Working out whether anyone got in needs the token header. The dev.to analysis notes that JWT header contents are not visible in standard URL logs, so the signing algorithm, the issuer and the signature verification result have to be cross-referenced against existing authentication and API audit logs [16]. It also points at API Manager audit records for access and changes to registered applications, consumer keys and secrets, administrators, and backend definitions [22]. Those records only answer the question if retention reaches back past mid-September [9].

What to watch

  • A confirmed in-wild bypass against a correctly versioned deployment would move this from a proven technique to an active breach; watchTowr's honeypot network is where that would surface first.
  • A revision past advisory version 1.0.0 that adds detection guidance or credential-rotation instructions to the solution section.
  • Whether the observed traffic starts fingerprinting product and version before sending the token, instead of spraying it at the wrong products.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories