Skip to main content
COSMICBYTEZLABS
NewsSecurityHOWTOsToolsTraining
StudyProjectsNewsletterHire MeAbout
Subscribe

Press Enter to search or Esc to close

News
Security
HOWTOs
Tools
Training
Study
Projects
Newsletter
Hire Me
About
RSS Feed
Reading List
Subscribe

Stay in the Loop

Get the latest security alerts, tutorials, and tech insights delivered to your inbox.

Subscribe NowFree forever. No spam.
COSMICBYTEZLABS

Your trusted source for IT intelligence, cybersecurity insights, and hands-on technical guides.

2604+ Articles
162+ Guides

CONTENT

  • Latest News
  • Security Alerts
  • HOWTOs
  • Checklists
  • Projects
  • Exam Prep

RESOURCES

  • Search
  • Browse Tags
  • Newsletter Archive
  • Reading List
  • RSS Feed

COMPANY

  • About Us
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CosmicBytez Labs. All rights reserved.

System Status: Operational
  1. Home
  2. Security
  3. Omnivore API: JWT Algorithm Confusion in Apple Sign-In Enables Account Takeover (CVE-2026-82454)
Omnivore API: JWT Algorithm Confusion in Apple Sign-In Enables Account Takeover (CVE-2026-82454)

Critical Security Alert

This vulnerability is actively being exploited. Immediate action is recommended.

SECURITYCRITICALCVE-2026-82454

Omnivore API: JWT Algorithm Confusion in Apple Sign-In Enables Account Takeover (CVE-2026-82454)

CVE-2026-82454 (CVSS 9.1): a JWT alg-confusion bug in Omnivore's Apple sign-in lets attackers forge tokens and take over any linked account.

Dylan H.

Security Team

August 30, 2026
5 min read

Affected Products

  • Omnivore API (packages/api) before commit abf53d6 / before android-0.227.0

Executive Summary

CVE-2026-82454 affects the Omnivore API (packages/api) prior to the fix in commit abf53d6, and carries a critical CVSS score of 9.1. The flaw is an authentication bypass in Omnivore's Apple Sign-In token verification, caused by a classic JWT algorithm confusion vulnerability.

CVSS Score: 9.1 (Critical) — CVSS 4.0: 9.3

Omnivore's decodeAppleToken function extracted the alg field directly from the attacker-supplied JWT header and passed it as the sole allowed algorithm to jwt.verify(). Because Omnivore relies on jsonwebtoken v8, which does not validate that a key is actually appropriate for the algorithm being used, an attacker can set alg=HS256 in a forged token and sign it using Apple's publicly available RSA public key as the HMAC secret. Since that key is public by design (it exists to verify RS256 signatures), the server incorrectly validates the forged HMAC signature and accepts the token as genuine — letting an attacker impersonate any Apple-linked account. The fix ships in commit abf53d6 (pull request #4652), included in Omnivore android-0.227.0 and later.


Vulnerability Overview

AttributeValue
CVE IDCVE-2026-82454
CVSS Score9.1 (Critical) — CVSS 4.0: 9.3
TypeJWT Algorithm Confusion → Authentication Bypass (CWE-347)
Attack VectorNetwork
Privileges RequiredNone
User InteractionNone
AssignerVulnCheck
Vulnerable FunctiondecodeAppleToken

Affected Versions

ProductAffected VersionsFixed Version
Omnivore APIBefore commit abf53d6Commit abf53d6 (PR #4652) — Omnivore android-0.227.0 and later

Technical Details

Apple Sign-In issues identity tokens as RS256-signed JWTs, verified using Apple's published RSA public key. A server verifying these tokens correctly should hardcode RS256 as the only accepted algorithm and use the RSA public key strictly as an RSA key.

Omnivore's decodeAppleToken instead read the algorithm to use for verification from the incoming token's own header rather than pinning it server-side, and passed that attacker-controlled value straight into jwt.verify(). This is exploitable because jsonwebtoken v8 does not enforce that the algorithm family matches the key type supplied.

An attacker can therefore:

  1. Craft a JWT header specifying alg: HS256 instead of the expected RS256.
  2. Sign the token using Apple's public RSA key — normally used only to verify signatures — as if it were a shared HMAC secret.
  3. Submit the forged token to Omnivore's Apple sign-in endpoint.

Because the server trusts the attacker-declared alg and Apple's public key is, by definition, public, the HMAC signature validates successfully, and Omnivore accepts the forged token as a legitimate Apple-issued identity assertion for any account the attacker chooses to impersonate.

Attack Vector

1. Attacker obtains Apple's publicly published RSA public key (freely available)
2. Attacker crafts a JWT claiming to be an Apple identity token for a target user,
   setting the header algorithm to alg=HS256
3. Attacker signs the token using Apple's RSA public key as the HMAC secret
4. Attacker submits the forged token to Omnivore's Apple sign-in flow
5. decodeAppleToken trusts the attacker-supplied alg and validates via HMAC
6. Server accepts the forged token, authenticating the attacker as the target user

Impact of Successful Exploitation

ImpactDescription
Account TakeoverImpersonate any user who signed up or linked their account via Apple Sign-In
No Authentication BarrierExploitation requires no valid Apple credentials, only a forged token
Silent ExploitationForged tokens are indistinguishable from legitimate ones at the application layer
Data ExposureFull access to the impersonated account's saved content and settings

Immediate Remediation

Step 1: Update Omnivore

git fetch origin
git log --oneline | grep abf53d6
# Update to android-0.227.0 or later, or apply commit abf53d6 directly

Step 2: Pin the Verification Algorithm Server-Side

If running a fork or delayed deployment, patch decodeAppleToken (or equivalent) to hardcode the expected algorithm rather than reading it from the token:

// Vulnerable pattern — do not use
const alg = decodedHeader.alg;
jwt.verify(token, applePublicKey, { algorithms: [alg] });
 
// Correct pattern
jwt.verify(token, applePublicKey, { algorithms: ["RS256"] });

Step 3: Upgrade the JWT Library

Consider upgrading past jsonwebtoken v8 to a version that enforces key/algorithm-type matching as an additional layer of defense, independent of application-level algorithm pinning.

Step 4: Audit for Prior Exploitation

# Review authentication logs for Apple sign-in events with unusual patterns,
# such as repeated failed/forged token attempts against specific accounts
grep -i "apple" /var/log/omnivore/auth*.log

Detection Indicators

IndicatorDescription
Apple sign-in JWTs with alg: HS256 in the headerDirect evidence of a forged token attempt
Successful Apple sign-in events with no corresponding Apple-side sessionSign of a bypassed verification
Unexpected account access following an Apple sign-in eventPossible successful account takeover

Post-Remediation Steps

  1. Confirm the deployment includes commit abf53d6 or android-0.227.0+.
  2. Force re-authentication for all accounts linked via Apple Sign-In.
  3. Review account activity for signs of prior unauthorized access.
  4. Audit any other JWT verification paths in the codebase for the same attacker-controlled-alg pattern.
  5. Add algorithm pinning as a standing code-review requirement for all JWT verification logic.

References

  • VulnCheck — Omnivore before android-0.227.0 Authentication Bypass via Apple Sign-in

Related Reading

  • CVE-2026-16149: Security Hardener WordPress Plugin Bypasses All REST API Authorization
  • CVE-2026-82452: rust-iot-platform Missing Auth Guards
#JWT#CVE-2026-82454#Authentication Bypass#Apple Sign-In#Algorithm Confusion

Related Articles

CVE-2026-15013: WordPress SAML SSO Plugin — Algorithm Confusion Auth Bypass

The miniOrange SAML Single Sign On plugin for WordPress through version 5.4.3 allows unauthenticated attackers to log in as any user via an RSA-to-HMAC...

4 min read

CVE-2026-52539: Hardcoded JWT Secret in Outstatic CMS Enables Admin Takeover

Outstatic CMS versions up to and including 2.1.9 ship a publicly known default JWT signing secret, allowing unauthenticated attackers to forge valid admin session tokens and take full control of the CMS.

6 min read

CVE-2026-8457: WooCommerce Social Login Authentication Bypass (CVSS 9.8)

A critical authentication bypass vulnerability in the WooCommerce - Social Login WordPress plugin allows unauthenticated attackers to log in as any registered user by exploiting a missing JWT signature verification in the Apple login handler.

3 min read
Back to all Security Alerts