Loading...
Skip to main content

CVE-2026-43938 — Vulnerability in YAFNET.Core — CVE Details

HIGH

YAFNET has Unauthenticated Stored Second-Order XSS in Admin Event Log via Reflected `User-Agent` Header

Published May 5, 2026Updated May 13, 2026Source: osv

Summary

**Description:** Stored (second-order) Cross-Site Scripting (XSS) occurs when attacker-controlled input is persisted through one component of an application and later rendered, without proper sanitization or contextual output encoding, by a completely different component — often one that implicitly trusts the stored data. Because the dangerous sink is typically a privileged administrative interface, the payload executes in the browser of a high-value user (such as an administrator) and inherits their authenticated session. This class of issue is especially severe when the entry point is an HTTP header on an unauthenticated endpoint, since the attack surface extends to any anonymous attacker on the internet with no prerequisites. **Issue Details:** The application's database logger (`YAFNET.Core/Logger/DbLogger.cs`) captures the incoming request's `User-Agent` header into a `JObject`, serializes it with `JsonConvert`, and stores the result in the `EventLog.Description` column whenever an event (e.g., an unhandled exception) is logged. The admin event-log page (`YetAnotherForum.NET/Pages/Admin/EventLog.cshtml.cs`) later deserializes that JSON in `FormatStackTrace()` and interpolates the `UserAgent` value directly into an HTML string with no encoding, and the Razor view `EventLog.cshtml` emits the result through `@Html.Raw`. Critically, the attacker does not need to be authenticated: the unauthenticated endpoint `GET /api/Attachments/GetAttachment?attachmentId=2147483647` reliably triggers a server-side exception that is written to `dbo.EventLog` together with the attacker-controlled `User-Agent`. A single anonymous request such as `curl -A "<img src=x onerror=alert('XSS')>" "http://<target>/api/Attachments/GetAttachment?attachmentId=2147483647"` is sufficient to persist the payload, and when an administrator later visits `/Admin/EventLog` the malicious markup is rendered as live HTML in the admin's authenticated session. **Impact:** An entirely unauthenticated attacker, with no account, no CSRF token, and no prior access, can stage JavaScript that will execute in an administrator's browser the next time the Event Log is viewed. Because the script runs in the admin's authenticated origin, it can perform any action the admin can: creating new administrative accounts, modifying site-wide settings, exfiltrating user data through admin-only endpoints. This effectively converts a single anonymous HTTP request into a full forum-takeover primitive, and the lack of any authentication requirement makes it exploitable at internet scale, including by automated scanners. **Likelihood:** Exploitation requires only the ability to send a single HTTP request to a public, unauthenticated endpoint, which any anonymous attacker on the internet can do. Administrators routinely review the Event Log as part of normal operations, so payload delivery is highly probable with negligible attacker effort, making the overall likelihood very high. **Steps to Reproduce:** - From an unauthenticated session (no cookies, no tokens), send the following request with a malicious `User-Agent` header: - `curl.exe -sS -A "<img src=x onerror=alert('XSS')>" "http://yetanotherforum.internal:8080/api/Attachments/GetAttachment?attachmentId=2147483647"` - Confirm the server returns an error response and that a row has been written to `dbo.EventLog` containing the attacker-controlled `UserAgent` value inside the JSON `Description`. - As an administrator (e.g., `Superuser`), navigate to `/Admin/EventLog`. - Observe that the rendered page contains the raw `<img src=x onerror="alert('XSS')">` element inside the event's badge block, and that the `onerror` handler executes in the admin's authenticated session, confirming cross-session, cross-privilege script execution from an unauthenticated source. <img width="1193" height="809" alt="image" src="https://github.com/user-attachments/assets/70c59ef2-8d31-435b-9a9d-338f753e58f8" />

Advisory Timeline

  • First published May 5, 2026 (160 days ago).
  • Last revised May 13, 2026 — 8 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

NuGet
Update YAFNET.Core to 4.0.5 or later
dotnet add package YAFNET.Core --version 4.0.5
NuGet
Update YAFNET.Core to 3.2.12 or later
dotnet add package YAFNET.Core --version 3.2.12

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (2)

Affects 1 ecosystem: nuget (1).

PackageEcosystemAffectedFixed In
YAFNET.Core
nuget
4.0.0, 4.0.0-beta03, 4.0.0-beta04, 4.0.0-beta05 (+12 more)4.0.5
YAFNET.Core
nuget
All versions3.2.12

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.1 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N

Frequently Asked Questions

What is CVE-2026-43938?
YAFNET has Unauthenticated Stored Second-Order XSS in Admin Event Log via Reflected `User-Agent` Header This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.1/10).
How do I check if my project is affected by CVE-2026-43938?
CVE-2026-43938 affects YAFNET.Core. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-43938 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.1

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-33gv-fc78-qgf5

Related CVEs

  • CVE-2026-43939
    HIGH

    YAFNET has Stored XSS in Forum Thread Posts/Replies that Allows Arbitrary JavaScript Execution for All Thread Viewers

  • CVE-2026-106112
    HIGH

    ImageSharp: ICC LUT16 output channel count can write beyond Vector4

  • CVE-2026-106115
    HIGH

    ImageSharp: TIFF CCITT T6 encoder writes beyond an undersized output buffer

  • CVE-2026-43937
    HIGH

    YAFNET: Pre-Handler Authorization Bypass on Admin Pages Enables Blind SQL Execution via `/Admin/RunSql`

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies