Cyber Resilience

CVE-2026-32891

XSS in Openvessl Anchorr ≤ 1.4.1

Published
20 March 2026
Modified
27 March 2026
Patch / advisory
CVSS Score v3.1 9.0
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
EPSS Score 0.0016 6th percentile
Risk Priority 60 floored blend · peak EPSS

Summary

CVE-2026-32891 is a critical-severity Basic XSS (CWE-80) vulnerability in Openvessl Anchorr. Its CVSS base score is 9.0 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Content Injection (T1659); ranked at the 6th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to MP-6 (Media Sanitization) and SA-11 (Developer Testing and Evaluation) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-32891 is a stored cross-site scripting (XSS) vulnerability, classified under CWE-80, CWE-212, and CWE-311, affecting Anchorr, a Discord bot for requesting movies and TV shows while providing notifications for additions to a media server. The flaw resides in the Jellyseerr user selector component in versions 1.4.1 and earlier. It enables arbitrary JavaScript execution within the browser session of an Anchorr administrator, triggered by the injected script calling the authenticated /api/config endpoint to retrieve the full application configuration in plaintext. The vulnerability carries a CVSS v3.1 base score of 9.0 (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H).

Any Anchorr account holder with low privileges can exploit this issue by injecting malicious JavaScript via the Jellyseerr user selector. Exploitation requires user interaction, as an administrator must view the affected selector for the script to execute in their browser context. Successful exploitation allows the attacker to forge a valid Anchorr session token, granting full unauthorized access to the admin dashboard without knowledge of the admin password. Additionally, the exposed configuration reveals API keys and tokens, enabling simultaneous account takeovers of the integrated Jellyfin media server (via JELLYFIN_API_KEY), Jellyseerr request manager (via JELLYSEERR_API_KEY), and the Discord bot (via DISCORD_TOKEN).

The issue has been addressed in Anchorr version 1.4.2, as detailed in the project's GitHub release notes and security advisory (GHSA-6mg4-788h-7g9g). Security practitioners should immediately upgrade to the patched version and review exposed configurations for potential compromise, particularly in environments integrating media servers and Discord bots.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

Anchorr is a Discord bot for requesting movies and TV shows and receiving notifications when items are added to a media server. Versions 1.4.1 and below contain a stored XSS vulnerability in the Jellyseerr user selector. Jellyseerr allows any account…

more

holder to execute arbitrary JavaScript in the Anchorr admin's browser session. The injected script calls the authenticated /api/config endpoint - which returns the full application configuration in plaintext. This allows the attacker to forge a valid Anchorr session token and gain full admin access to the dashboard with no knowledge of the admin password. The same response also exposes the API keys and tokens for every integrated service, resulting in simultaneous account takeover of the Jellyfin media server (via JELLYFIN_API_KEY), the Jellyseerr request manager (via JELLYSEERR_API_KEY), and the Discord bot (via DISCORD_TOKEN). This issue has been fixed in version 1.4.2.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1659 Content Injection Initial Access
Adversaries may gain access and continuously communicate with victims by injecting malicious content into systems through online network traffic.
T1040 Network Sniffing Credential Access
Adversaries may passively sniff network traffic to capture information about an environment, including authentication material passed over the network.
T1539 Steal Web Session Cookie Credential Access
An adversary may steal web application or service session cookies and use them to gain access to web applications or Internet services as an authenticated user without needing credentials.
T1552 Unsecured Credentials Credential Access
Adversaries may search compromised systems to find and obtain insecurely stored credentials.
T1552.001 Credentials In Files Credential Access
Adversaries may search local file systems and remote file shares for files containing insecurely stored credentials.
T1552.002 Credentials in Registry Credential Access
Adversaries may search the Registry on compromised systems for insecurely stored credentials.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-32890Same product: Openvessl Anchorr
CVE-2023-32982Shared CWE-311
CVE-2023-30523Shared CWE-311
CVE-2024-32028Shared CWE-212
CVE-2023-41096Shared CWE-311
CVE-2023-0690Shared CWE-311
CVE-2023-41095Shared CWE-311
CVE-2026-27640Shared CWE-212
CVE-2025-68131Shared CWE-212
CVE-2025-0011Shared CWE-212

Affected Assets

openvessl
anchorr
≤ 1.4.1

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 12 hardening rules · 7 OS baselines
Validate
Prove the fix (OWASP ASVS)
  • V14.2.8
  • V14.3.3
  • V1.2.1
  • V1.3.1

Mitigating Controls (NIST 800-53 r5) AI

SC-13 mandates use of specific cryptography, structurally preventing unencrypted sensitive data.

Requires sanitization of media before disposal, release, or reuse, directly stopping sensitive information from remaining in resources made available to unauthorized parties.

Developer testing and evaluation can discover missing or incorrect neutralization of script tags through targeted XSS test cases.

SC-28 requires cryptographic protection of information at rest, eliminating the storage half of the weakness.

SC-8 requires protecting confidentiality of transmitted information, directly stopping missing encryption on the wire.

Input validation explicitly requires checking and neutralizing untrusted web inputs containing script-related characters before they reach a downstream renderer.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.DS-01 mostly match
prevents

PR.DS-01 directly mandates encryption for data-at-rest and therefore prevents CWE-311 mostly for storage, yet the weakness also spans transmission and other contexts that this single at-rest control leaves unaddressed.

PR.DS-10 mostly match
prevents

Directly addresses removal of confidential data from process memory and similar in-use contexts before exposure.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly require output encoding and input validation that prevent basic XSS.

PR.DS-02 partial match
prevents

PR.DS-02 directly eliminates the transmission facet of CWE-311 via mandatory encryption but leaves the storage facet untouched, so each direction rates only partial.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

degrades

Explicit information-deletion control directly addresses improper removal of sensitive data.

prevents

Data-masking techniques can substitute for removal when full deletion is impractical.

finds

Security testing in development catches unneutralized script tags before release.

prevents

Test-data protection rules require sanitization of production data used in testing.

prevents

Classification identifies sensitive data that must be removed before storage or transfer.

prevents

Information-transfer rules can require sanitization of sensitive content before sharing.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (authoritative rows only; rows rated `none` are excluded).

Oracle Linux 8 (4 rules)
  • V-248525 All OL 8 local disk partitions must implement cryptographic mechanisms to prevent unauthorized disclosure or modification of all information that requires at-rest protection. prevents CWE-311
  • V-248579 OL 8 must restrict access to the kernel message buffer. prevents CWE-212
  • V-248580 OL 8 must prevent kernel profiling by unprivileged users. prevents CWE-212
Oracle Linux 9 (2 rules)
  • V-271756 OL 9 local disk partitions must implement cryptographic mechanisms to prevent unauthorized disclosure or modification of all information that requires at rest protection. prevents CWE-311
  • V-271745 OL 9 must restrict access to the kernel message buffer. prevents CWE-212
RHEL 8 (2 rules)
  • V-230224 All RHEL 8 local disk partitions must implement cryptographic mechanisms to prevent unauthorized disclosure or modification of all information that requires at rest protection. prevents CWE-311
  • V-230269 RHEL 8 must restrict access to the kernel message buffer. prevents CWE-212
RHEL 9 (1 rule)
  • V-257879 RHEL 9 local disk partitions must implement cryptographic mechanisms to prevent unauthorized disclosure or modification of all information that requires at rest protection. prevents CWE-311
Windows Server 2016 (1 rule)
  • V-224843 Systems requiring data at rest protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. prevents CWE-311
Windows Server 2019 (1 rule)
  • V-205727 Windows Server 2019 systems requiring data at rest protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. prevents CWE-311

References