Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed auth endpoints
-
DeliveryRotate spoofed X-Forwarded-For per request
-
ExploitEvade per-IP rate limiter
-
ExecutionBrute-force passwords and TOTP codes
-
ImpactHijack account and forge logged IPs
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication IP-independent access control
|
| Exploitation Conditions | Exploitable against default deployments: backend/src/main.ts calls app.set('trust proxy', true) unconditionally in versions before 1.22.0, so the server trusts any client-supplied X-Forwarded-For header with no special configuration needed. The only prerequisites are network reachability of the auth endpoints (/api/auth/signIn, /api/auth/signIn/totp, /api/auth/resetPassword) and the attacker's ability to set arbitrary HTTP headers. Limiting factors: the bug only removes throttling, so actual account compromise still depends on guessable passwords or low-entropy/weak-lockout TOTP, and a correctly configured upstream proxy that strips or overwrites X-Forwarded-For would blunt the spoofing; the fix additionally requires operators to set TRUST_PROXY=true only when a trusted proxy is genuinely in front. |
| Impact | This is a genuine but moderate-severity issue, not a critical drop-everything flaw. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms network-reachable, low-complexity, unauthenticated exploitation with no user interaction, which is why the base score lands at 6.9 (medium). Crucially, the impact metrics are only VC:L/VI:L/VA:N - the bug itself does not directly compromise data; it defeats a per-IP anti-brute-force control, so its real damage is conditional on downstream brute-forcing of weak passwords or TOTP codes. No EPSS score is provided in the input, so exploitation probability cannot be quantified. KEV status is not present (no CISA listing), and no POC is referenced, so exploitation status is 'no public exploit identified at time of analysis.' No SSVC decision data was supplied. The signals are internally consistent (network vector matches an HTTP-header-based attack against public endpoints); the main missing data are EPSS and any independent exploitation evidence. Net: a credible, easy-to-trigger weakness that materially raises brute-force risk, but its ceiling is limited by the low technical impact and dependence on weak target credentials. |
| Exploit ScenarioDerived | An attacker points a brute-force tool at an internet-exposed Pingvin Share X instance and hammers /api/auth/signIn and /api/auth/signIn/totp, rotating a fresh spoofed X-Forwarded-For value on every request so the per-IP rate limiter never trips. Because backend/src/main.ts sets 'trust proxy' to true unconditionally, the app treats each forged header as the real client IP, enabling unlimited password/TOTP guessing and poisoning of logged source IPs. No public exploit code is referenced, but the technique is trivial to script with any HTTP client. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
A rate-limiting bypass in Pingvin Share X before 1.22.0 lets unauthenticated remote attackers defeat per-IP throttling on the sign-in, TOTP, and password-reset endpoints by rotating spoofed X-Forwarded-For headers. Because backend/src/main.ts calls app.set('trust proxy', true) unconditionally, any client-supplied forwarding header is believed, so attackers can brute-force passwords or TOTP codes at unrestricted speed and poison IP-based logging with forged client addresses. Exploitation requires only network reachability of the auth API and the ability to send arbitrary headers - no special configuration - though real account compromise still depends on weak credentials or low-entropy codes. No public exploit code or confirmed active exploitation was identified at time of analysis, and vendor-patched version 1.22.0 is available (CWE-348, CVSS 4.0 base 6.9 / assessed CVSS 3.1 6.5).
RemediationAI
Vendor-released patch: 1.22.0 - upgrade Pingvin Share X to v1.22.0 or later, which is the only complete fix for the trust-proxy behavior. After upgrading, note that the patch changes the default to not trusting proxies, so operators running behind a reverse proxy must explicitly set the environment variable TRUST_PROXY=true; leaving it unset on a proxied deployment will cause all requests to appear to come from the proxy IP and can throttle legitimate users collectively, so pair it with a proxy that reliably strips and rewrites inbound X-Forwarded-For (nginx proxy_set_header X-Forwarded-For $remote_addr; or equivalent) and never forwards client-supplied values. If immediate upgrading is not possible, compensate by enforcing authentication rate limiting outside the application - at the reverse proxy or WAF keyed on the true TCP peer address, or with a network ACL that only exposes the backend to the proxy - accepting the trade-off that application-level logs will still record spoofed IPs and that any internal limiters remain bypassable. Additional hardening that reduces brute-force payoff: enforce a strong password policy, lower the accepted TOTP window, add username-based lockout or exponential backoff (which is not defeated by IP rotation), and disable password authentication in favour of SSO/forward-auth where the deployment supports it. The upstream fix is visible at https://github.com/smp46/pingvin-share-x/commit/25e9cee7fb1c155300b5663fc5fedeea32d20954 and the advisory at https://github.com/smp46/pingvin-share-x/security/advisories/GHSA-7gx2-g6x2-7mjg.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is a classic CWE-348 'Use of Less Trusted Source' problem in a Node/Express backend. Express derives the client IP used by rate-limiting middleware from request headers when the 'trust proxy' setting is enabled; Pingvin Share X hard-coded app.set('trust proxy', true) in backend/src/main.ts (line 57 in the pre-fix tree), which instructs Express to trust every hop and therefore to honour client-supplied X-Forwarded-For values. Any remote client can thus present an arbitrary IP string per request, causing the throttling middleware (which keys on IP) to see a new, unlimited bucket each time the header is changed, allowing high-rate guessing against POST /api/auth/signIn, /api/auth/signIn/totp and /api/auth/resetPassword. The same spoofing also corrupts audit trails and any IP-based access logic. The upstream commit 25e9cee7fb1c155300b5663fc5fedeea32d20954 changes the line to app.set('trust proxy', process.env.TRUST_PROXY === 'true'), so proxy trust becomes opt-in and must be explicitly enabled only when a genuine reverse proxy is present. Because the CVSS 4.0 vector carries PR:N, no authentication is required to trigger the bypass; impact is scored as low confidentiality and low integrity, with activity limited to removing a defensive control rather than directly exfiltrating data.
Know when Pingvin Share X gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Remote, low-complexity, unauthenticated header spoofing against public endpoints (AV:N/AC:L/PR:N/UI:N); impact limited to defeating throttling and forging logged IPs, so C:L/I:L and A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Pingvin Share X before 1.22.0 contains a rate limit bypass vulnerability that allows unauthenticated remote attackers to evade per-IP throttling because backend/src/main.ts unconditionally trusts proxy headers. Attackers can rotate spoofed X-Forwarded-For values against /api/auth/signIn, /api/auth/signIn/totp, and /api/auth/resetPassword to brute-force passwords and TOTP codes and forge logged client IP addresses.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Pingvin Share X
View allAccount takeover in Pingvin Share X 0.19.0 through 1.21.x allows remote attackers to seize arbitrary accounts - includin
Pingvin Share X versions 1.5.0 through 1.18.0 expose an authentication bypass in TOTP management endpoints due to a Java
Pingvin Share X before 1.22.0 ships with an ineffective authentication rate limiter, because throttler TTL values writte
EUVD-2026-96317
GHSA-3chq-cx7h-2cfx
NVD
CVE.org
EPSS
VulDB
Exploit-DB