CVE-2026-25050
published 2026-01-30CVE-2026-25050: Vendure is an open-source headless commerce platform. Prior to version 3.5.3, the `NativeAuthenticationStrategy.authenticate()` method is vulnerable to a…
PriorityP432medium5.3CVSS 3.1
AVNACLPRNUINSUCLINAN
EPSS
0.36%
28.3th percentile
Vendure is an open-source headless commerce platform. Prior to version 3.5.3, the `NativeAuthenticationStrategy.authenticate()` method is vulnerable to a timing attack that allows attackers to enumerate valid usernames (email addresses). In `packages/core/src/config/auth/native-authentication-strategy.ts`, the authenticate method returns immediately if a user is not found. The significant timing difference (~200-400ms for bcrypt vs ~1-5ms for DB miss) allows attackers to reliably distinguish between existing and non-existing accounts. Version 3.5.3 fixes the issue.
Affected
3 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| vendure | core | >= 0 < 3.5.3 | 3.5.3 |
| vendure | vendure | < 3.5.3 | 3.5.3 |
| vendurehq | vendure | < 3.5.3 | 3.5.3 |
CVSS provenance
nvdv3.15.3MEDIUMCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
nvdv4.02.7LOWCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
Vendure vulnerable to timing attack that enables user enumeration in NativeAuthenticationStrategy
osv·2026-01-30
CVE-2026-25050 [LOW] Vendure vulnerable to timing attack that enables user enumeration in NativeAuthenticationStrategy
Vendure vulnerable to timing attack that enables user enumeration in NativeAuthenticationStrategy
### Summary
The `NativeAuthenticationStrategy.authenticate()` method is vulnerable to a timing attack that allows attackers to enumerate valid usernames (email addresses).
### Details
In `packages/core/src/config/auth/native-authentication-strategy.ts`, the authenticate method returns immediately if a user is not found:
```typescript
const user = await this.userService.getUserByEmailAddress(ctx, data.username);
if (!user) {
return false; // Instant return (~1-5ms)
}
const passwordMatch = await this.verifyUserPassword(ctx, user.id, data.password);
// Password check takes ~200-400ms with bcrypt (12 rounds)
```
The significant timing difference (~200-400ms for bcrypt vs ~1-5ms for DB miss) al
GHSA
Vendure vulnerable to timing attack that enables user enumeration in NativeAuthenticationStrategy
ghsa·2026-01-30
CVE-2026-25050 [LOW] CWE-202 Vendure vulnerable to timing attack that enables user enumeration in NativeAuthenticationStrategy
Vendure vulnerable to timing attack that enables user enumeration in NativeAuthenticationStrategy
### Summary
The `NativeAuthenticationStrategy.authenticate()` method is vulnerable to a timing attack that allows attackers to enumerate valid usernames (email addresses).
### Details
In `packages/core/src/config/auth/native-authentication-strategy.ts`, the authenticate method returns immediately if a user is not found:
```typescript
const user = await this.userService.getUserByEmailAddress(ctx, data.username);
if (!user) {
return false; // Instant return (~1-5ms)
}
const passwordMatch = await this.verifyUserPassword(ctx, user.id, data.password);
// Password check takes ~200-400ms with bcrypt (12 rounds)
```
The significant timing difference (~200-400ms for bcrypt vs ~1-5ms for DB miss) al
No detection rules found.
No public exploits indexed.
2026-01-30
Published