Microsoft Titan Analytics JWT 'alg:none' Authentication Bypass Exposed Access to 17.3 Trillion ClickHouse Rows

Microsoft Titan Analytics JWT 'alg:none' Authentication (TL-2026-2675), also tracked as Titan alg:none JWT Bypass, is a high-severity software vulnerability, first published 2026-09-26. It has no confirmed attribution, affects Microsoft Titan (internal analytics/BI service), maps to 10 MITRE ATT&CK techniques (T1078.004, T1190, T1213), and is covered by 9 detection rules and 8 indicators of compromise.

Key facts for TL-2026-2675

Threat ID
TL-2026-2675
Also known as
Titan alg:none JWT Bypass
Severity
HIGH
Status
PATCHED
Category
VULNERABILITY
First published
2026-09-26
Last reviewed
2026-09-26
Attribution confidence
LOW
Motivation
UNKNOWN
Target sectors
technology
Target regions
Global
Detection rules
9
Indicators of compromise
8

Malware and tooling in Microsoft Titan Analytics JWT 'alg:none' Authentication

Malware and tooling: Antares

Independent researcher Faav found that Microsoft's internal Titan analytics service accepted an unsigned JSON Web Token (header alg:none, empty signature) and trusted its claims without cryptographic verification; setting the upn claim to 'admin' resolved to Titan local user ID 1 with the Admin role, letting the researcher run arbitrary SQL against 17 connected ClickHouse databases (~9,863 tables, ~17.3 trillion estimated rows) via the /v2/Query route. Microsoft restricted the endpoint on 2026-09-09, four days after the 2026-09-05 MSRC report (Case 144051), and paid a $5,000 bounty; no evidence of malicious exploitation or customer PII access was found.

How Microsoft Titan Analytics JWT 'alg:none' Authentication works

Titan is an internal Microsoft analytics/business-intelligence platform that fronts dozens of ClickHouse databases used for telemetry and reporting (including Bing search analytics). Its web console displays a 'VPN REQUIRED' page, but researcher Faav's AI-assisted reconnaissance tool 'Antares' (built on Codex and Claude models) discovered that Titan's backend API was independently reachable over the public internet via an Azure Cloud Services-hosted endpoint, with a Swagger document listing routes including /v2/Query, which accepted raw SQL text.

On 2026-08-25, Antares recovered 56 historical table/route definitions for Titan from Wayback Machine archives, giving Faav a map of the service's surface before any live probing. Titan authenticated callers using JSON Web Tokens carrying tenant ID (tid), audience (aud), application ID (appid), and a upn (user principal name) claim. Over roughly ten days of systematic testing (2026-08-25 to 2026-09-05), Faav found that Titan validated the presence and structure of these claims but never cryptographically verified the token's signature or issuer. Around 1 AM on 2026-09-05, Faav submitted a token with header {"alg":"none","typ":"JWT"} and an empty signature section (a bare trailing period instead of a signature), replacing the upn value with the literal string 'admin' instead of an email-formatted identity. Titan's backend treated upn as a local application username rather than a verified identity: 'admin' resolved to local user ID 1, which held the Admin role, and a SELECT 1 validation query executed successfully -- confirming unauthenticated, unauthorized arbitrary SQL execution against Titan's connected data stores.

Of the 56 archived routing targets, 30 remained active. These routed through 24 database configurations to 17 distinct ClickHouse analytics database instances, spanning roughly 9,863 unique table names. Using the forged admin session, Faav queried Titan's own metadata database (revealing ~25,000 account/email records, 17,990 employee email records, 15,001 employee/org records, 355 database configurations, 20,979 SQL definitions, and roughly 24,569 dashboards / 425,891 charts / 27,347 dataset definitions) and ran two limited one-row queries against Bing search analytics tables, which returned search-activity records with country/state-level location data and Microsoft User IDs (MUIDs). Faav deliberately limited testing to metadata and single-row samples and stated no customer PII was accessed and no evidence of prior malicious exploitation was found; the disclosed row-count estimate (17,333,335,124,315) reflects the theoretical scope reachable through the flaw, not confirmed exfiltration.

Faav reported the issue to the Microsoft Security Response Center on 2026-09-05 (Case 144051). MSRC asked the researcher to halt further testing and confirm their source IP while investigating (2026-09-06 to 2026-09-08). Microsoft restricted/locked down the exposed Titan API endpoint on 2026-09-09 -- four days after the report -- and awarded a $5,000 bug bounty on 2026-09-17. The write-up underwent Microsoft editorial coordination (2026-09-22 to 2026-09-24) ahead of public disclosure on 2026-09-26. No CVE was assigned, consistent with this being an internal-tooling authentication design flaw rather than a shipped product vulnerability.

The root cause is a broken JWT trust model: Titan inspected structural claims (tenant, audience, app ID, user) while skipping the one check -- signature verification against a trusted issuer/key -- that makes any of those claims trustworthy. This single failure undermined multiple compensating controls Microsoft had layered around the service, including its VPN-only frontend and role-based access control, because an attacker-controlled identity claim could bypass all of them once the backend API was reachable at all. The incident illustrates a recurring class of API authentication bypass (JWT 'alg:none' / unverified signature) with severe blast radius when the exposed service is a data-aggregation platform sitting in front of many downstream databases.

MITRE ATT&CK techniques used in TL-2026-2675

Privilege Escalation

T1078.004 Cloud Accounts

Initial Access

T1190 Exploit Public-Facing Application

Collection

T1213 Data from Information Repositories

Discovery

T1526 Cloud Service Discovery; T1580 Cloud Infrastructure Discovery

lateral-movement

T1550.001 Application Access Token

Resource Development

T1588.002 Tool

Reconnaissance

T1591.004 Identify Roles; T1595.002 Vulnerability Scanning

Credential Access

T1606 Forge Web Credentials

Affected products and versions in Microsoft Titan Analytics JWT 'alg:none' Authentication

  • Microsoft — Titan (internal analytics/BI service)
    Vulnerable versions: Production deployment prior to 2026-09-09
    Fixed in: Production deployment from 2026-09-09 onward (exposed API endpoint restricted)

Remediation for Microsoft Titan Analytics JWT 'alg:none' Authentication

Patches

  • Microsoft restricted/locked down the exposed Titan API endpoint on 2026-09-09, four days after the 2026-09-05 MSRC report (Case 144051)

Immediate actions

  • Restrict or remove any publicly reachable API surface for internal analytics tooling whose web frontend is meant to be VPN-only (Titan's backend API was reachable via its Azure Cloud Services host despite the console requiring VPN)
  • Audit every JWT-consuming service for explicit algorithm allow-listing that rejects 'alg:none' and any algorithm the service does not itself expect
  • Enforce cryptographic signature verification against a trusted issuer/key for every JWT before trusting any embedded claim (tenant ID, audience, app ID, upn/user identity)

Workarounds

  • Pending remediation of a similar defect, network-isolate or take offline any API surface for internal analytics tooling that mirrors a VPN-required frontend until signature verification and claim-to-identity binding are fixed

Longer-term hardening

  • Validate identity claims such as upn/oid against an authoritative identity provider or directory rather than trusting client-supplied claim values, and never let a claim resolve directly to a privileged local user ID (e.g. 'admin' -> user ID 1 with Admin role) without an independent authorization check
  • Apply zero-trust review to internal analytics/BI platforms that front large aggregated data stores, since a single authentication defect can expose every connected downstream database at once
  • Periodically re-verify that VPN-gated internal services have no parallel publicly reachable API surface (e.g. via Azure App Service / API Management / Cloud Services), including checking for exposed Swagger/OpenAPI documents
  • Treat platform metadata (database names, table structures, SQL definitions, dashboard/dataset counts) as sensitive, since it functions as an attacker roadmap even when row-level data stays protected

Weaknesses (CWE) in Microsoft Titan Analytics JWT 'alg:none' Authentication

CWE-347, CWE-287, CWE-863

Timeline of Microsoft Titan Analytics JWT 'alg:none' Authentication

  • Faav begins roughly ten days of systematic JWT claim testing against Titan's API, probing responses to different claim values through observed error messages.
  • Researcher Faav's AI-assisted tool 'Antares' identifies Titan's publicly reachable Azure-hosted API and recovers 56 archived table/route definitions from the Wayback Machine, despite Titan's web console requiring a VPN.
  • Faav reports the vulnerability to the Microsoft Security Response Center, opening Case 144051.
  • At approximately 1 AM, Faav submits an unsigned 'alg:none' JWT with the upn claim set to the literal string 'admin'; Titan resolves it to local user ID 1 with the Admin role and executes a SELECT 1 validation query, confirming arbitrary SQL execution.
  • MSRC begins responding to the report, requesting that Faav halt further testing and confirm the source IP used during research.
  • MSRC continues investigating the reported access, coordinating with Faav on scope and impact before remediation.
  • Microsoft restricts/locks down the exposed Titan API endpoint, four days after the initial MSRC report.
  • Microsoft awards Faav a $5,000 bug bounty for the finding.
  • Faav's technical write-up undergoes Microsoft editorial coordination ahead of public disclosure, continuing through 2026-09-24.
  • The researcher's write-up and corroborating security-news coverage of the Titan JWT alg:none bypass are published publicly.

Sources cited for Microsoft Titan Analytics JWT 'alg:none' Authentication

More in vulnerability

Detection coverage for TL-2026-2675

As of 2026-09-26, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-2675 across Splunk SPL, Microsoft KQL and Sigma, covering 8 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Latest Threats