Skip to content

[Security] Learning Hub content.xml parsed with XXE-enabled XmlDocument #47

Closed

Description

Severity: CVSS 5.9 (Medium) CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:N · MSRC Moderate
Attacker: network MITM / hijacked feed · Metalama analogue: closest metalama/Metalama#1649

Affected code

  • UserInterface/PostSharp.VisualStudio/View/LearningHub/ContentDownloader.cs:72-83 (and the cached re-parse at :26-29)

Description

content.xml (downloaded from the Learning Hub feed) is parsed by a bare XmlDocument with no XmlResolver = null / DtdProcessing restriction; on .NET Framework 4.7.2 the default XmlUrlResolver resolves DTDs/external entities → XXE (local file disclosure / SSRF) when the feed content is attacker-controlled. CA3075 is globally disabled.

Exploit scenario

A hijacked feed server, or an active TLS-MITM with a valid cert for www.postsharp.net, returns a content.xml whose DTD exfiltrates a local file or forces internal requests; resolved as the developer when the Learning Hub tool window loads. (The feed is HTTPS, so passive MITM is blocked.)

Recommendation

Set document.XmlResolver = null (and DtdProcessing = Prohibit) before both Load calls.

Severity notes

Most debatable: AC — H because the attacker must control the trusted HTTPS server; if you score the XXE itself (conditioned on a compromised feed) as trivially reliable, AC:L → 8.2 High.

Part of #56.

Activity

  1. changed the title [-]Placeholder for #52[/-] [+][Security] Learning Hub content.xml parsed with XXE-enabled XmlDocument[/+] on Jun 27, 2026
  2. gfraiteur commented on Jun 27, 2026

    @gfraiteur
    MemberAuthor

    Released in v2024.0.24.

    -- Claude for Gael

  3. gfraiteur commented on Jun 27, 2026

    @gfraiteur
    MemberAuthor

    Also released in v2026.0.13, which includes the upstream 2024.0.24 changes.

    -- Claude for Gael

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Area-VsxVisual Studio extension

Type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions