Cyber & AI intelligence
Wasteland.
Briefs indexed3476
Issues33
Published Mondays07:30 CT
⚡ Active KEV CVE-2026-108860 2026-10-11

BotSharp Hard-Coded JWT Key Lets Unauthenticated Attackers Impersonate Any User (CVE-2026-108860)

"BotSharp through version 5.2.0 ships with a hard-coded JWT signing key, which lets unauthenticated remote attackers forge bearer tokens and impersonate any known user, including administrators."

BotSharp through version 5.2.0 ships with a hard-coded JWT signing key, which lets unauthenticated remote attackers forge bearer tokens and impersonate any known user, including administrators.

What Is It

CVE-2026-108860 is an authentication bypass in SciSharp's BotSharp. The Jwt:Key value is hard-coded in the WebStarter appsettings.json file. That HMAC secret is committed to the public repository, and the token issuer and audience are both fixed to botsharp. As a result, attackers can sign their own tokens that the application accepts as valid.

The weakness is classified as CWE-321 (Use of Hard-coded Cryptographic Key). VulnCheck reported the issue, and NVD published it on 2026-10-11. The NVD record status is currently "Received."

Why It Matters

A forged token lets an attacker impersonate any known user, including administrators, on API routes protected by Authorize. The attacker needs no credentials and no user interaction.

Severity is rated CRITICAL:

The supplied data has no CISA KEV entry for this CVE. Active exploitation is not confirmed by KEV at this time.

What's Vulnerable

The vulnerable configuration is in src/WebStarter/appsettings.json. The JWT validation setup is in src/Infrastructure/BotSharp.OpenAPI/BotSharpOpenApiExtensions.cs. Both are linked in the NVD references.

Patch Status

The supplied NVD data lists no fixed version, and there is no CISA KEV required action. The affected range is described only as "through 5.2.0." Check the vendor repository and the VulnCheck advisory for remediation updates.

The vulnerable key is committed to the public repository. Any deployment that still uses the default Jwt:Key from appsettings.json should be treated as exposed.

Sources