# CVE-2025-66482: Misskey has a login rate limit bypass via spoofed X-Forwarded-For header

> Attackers can bypass IP rate limiting by spoofing the X-Forwarded-For header when using an untrusted reverse proxy or no proxy.

- **Severity:** Medium 6.9 (`CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 15 Dec 2025
- **Updated:** 16 Dec 2025
- **Also known as:** GHSA-wwrj-3hvj-prpm

## What is CVE-2025-66482?

CVE-2025-66482 is a medium-severity vulnerability in misskey-dev misskey, published on 15 Dec 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

Misskey is an open source, federated social media platform. Attackers who use an untrusted reverse proxy or not using a reverse proxy at all can bypass IP rate limiting by adding a forged X-Forwarded-For header. Starting with version 2025.9.1, an option (`trustProxy`) has been added in config file to prevent this from happening. However, it is initialized with an insecure default value before version 2025.12.0-alpha.2, making it still vulnerable if the configuration is not set correctly. This is patched in v2025.12.0-alpha.2 by flipping default value of `trustProxy` to `false`. Users of a trusted reverse proxy who are unsure if they manually overode this value should check their config for optimal behavior. Users are running Misskey with a trusted reverse proxy should not be affected by this vulnerability. From v2025.9.1 to v2025.11.1, workaround is available. Set `trustProxy: false` in config file.

Weakness: CWE-307 (Improper Restriction of Excessive Authentication Attempts), CWE-1188 (Initialization of a Resource with an Insecure Default)

## Which versions are affected by CVE-2025-66482?

2 open source packages ship an affected version, including misskey-js. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `misskey-js` | npm | From 2025.9.1 | 2025.12.0-alpha.2 |
| `misskey-js` | npm | From 2025.9.1 | 2025.12.0-alpha.2 |

Products: Misskey Misskey.

## How do I fix CVE-2025-66482?

Upgrade misskey-js to 2025.12.0-alpha.2 or later.

## Is CVE-2025-66482 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2025-66482 exists.

## Other vulnerabilities in misskey-dev misskey

- [CVE-2025-25306](https://insights.sbomify.com/CVE-2025-25306/): Misskey's Incomplete Patch of CVE-2024-52591 Leads to Forgery of Federated Notes (critical 9.3)
- [CVE-2023-49079](https://insights.sbomify.com/CVE-2023-49079/): Misskey's missing signature validation allows arbitrary users to impersonate any remote user. (critical 9.3)
- [CVE-2026-28431](https://insights.sbomify.com/CVE-2026-28431/): Misskey lacks proper authorization checks and input validation (critical 9.2)
- [CVE-2023-52139](https://insights.sbomify.com/CVE-2023-52139/): Misskey vulnerable to improper authorization when accessing with third-party application (critical 9.1)
- [CVE-2024-52590](https://insights.sbomify.com/CVE-2024-52590/): Missing validation allows spoofed profiles in Misskey (high 8.8)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2025-66482 and fix it if it is affected.

What it is: CVE-2025-66482 is a medium-severity vulnerability in misskey-dev misskey, published on 15 Dec 2025. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2025-66482 exists.

Affected packages and fixed versions:
- misskey-js (npm): affected from 2025.9.1; fixed in 2025.12.0-alpha.2
- misskey-js (npm): affected from 2025.9.1; fixed in 2025.12.0-alpha.2

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2025-66482/ (Markdown: https://insights.sbomify.com/CVE-2025-66482/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2025-66482
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-66482
- OSV: https://osv.dev/vulnerability/CVE-2025-66482

---
From sbomify Insights: https://insights.sbomify.com/CVE-2025-66482/
Summaries are generated and may contain mistakes; the official description above is the record.
