SEC: authlib-injector 跟随 x-authlib-injector-api-location 跳转(候选) #13

Closed
opened 2026-11-09 14:24:07 +00:00 by layue13 · 1 comment
Owner

调研编号:扫描 2026-11-09 / G4(存疑)

现象

添加 Authlib 认证服时,若响应带 x-authlib-injector-api-location,启动器会断开原连接并改连该头给出的绝对 URL,无 host 允许列表。用户主动添加第三方认证服是预期风险;是否算缺陷取决于产品威胁模型。

危害类与优先级

  • 危害类:SEC
  • 优先级:p3

证据(生效源码)

  • 载体:TDLM/HMCL + 分支 origin/main + pin/commit bdacd654734c3665995a8c779da34139b9bdf373
  • 位置:AuthlibInjectorServer.java:45-51;随后 :60 readFullyAsString
  • 关键原文:
String ali = conn.getHeaderField("x-authlib-injector-api-location");
if (ali != null) {
    WebURL absoluteAli = WebURL.parse(ali, WebURL.of(conn.getURL()));
    if (!urlEqualsIgnoreSlash(webURL.toString(), absoluteAli.toString())) {
        conn.disconnect();
        url = absoluteAli.toString();
        conn = NetworkUtils.resolveConnection(NetworkUtils.createHttpConnection(absoluteAli));
    }
}
  • 上游状态:未修

触发与复现

  • 触发条件:用户添加返回该响应头的认证服。
  • 复现程度:未验证(仅形状相同——此时本 issue 是候选,别派单)
  • 包内相关性:模块 n/a/sides client/默认配置可达 否

落点

  • 主仓:TDLM/HMCL → AuthlibInjectorServer.java:45

范式

引证

  1. 生效源码 permalink — https://git.potatolab.uk/TDLM/HMCL/src/commit/bdacd654734c3665995a8c779da34139b9bdf373/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorServer.java#L45-L51
  2. 范式 G4 — https://git.potatolab.uk/TDLM/mc-defect-patterns/raw/commit/12d2ebdc7a87175f936c2a67083be567e0e94301/sec/G4-信任边界.md

来源

  • 线索类型:内部代码审查(无外部报障)
  • 可解析指针:AuthlibInjectorServer.java:45-51;commit bdacd654734c3665995a8c779da34139b9bdf373
  • 来源标签:origin/scan
**调研编号**:扫描 2026-11-09 / G4(存疑) ## 现象 添加 Authlib 认证服时,若响应带 `x-authlib-injector-api-location`,启动器会断开原连接并改连该头给出的绝对 URL,无 host 允许列表。用户主动添加第三方认证服是预期风险;是否算缺陷取决于产品威胁模型。 ## 危害类与优先级 - 危害类:`SEC` - 优先级:`p3` ## 证据(生效源码) - 载体:`TDLM/HMCL` + 分支 `origin/main` + pin/commit `bdacd654734c3665995a8c779da34139b9bdf373` - 位置:`AuthlibInjectorServer.java:45-51`;随后 `:60` `readFullyAsString` - 关键原文: ```java String ali = conn.getHeaderField("x-authlib-injector-api-location"); if (ali != null) { WebURL absoluteAli = WebURL.parse(ali, WebURL.of(conn.getURL())); if (!urlEqualsIgnoreSlash(webURL.toString(), absoluteAli.toString())) { conn.disconnect(); url = absoluteAli.toString(); conn = NetworkUtils.resolveConnection(NetworkUtils.createHttpConnection(absoluteAli)); } } ``` - 上游状态:未修 ## 触发与复现 - 触发条件:用户添加返回该响应头的认证服。 - 复现程度:未验证(仅形状相同——此时本 issue 是候选,别派单) - 包内相关性:模块 n/a/sides `client`/默认配置可达 否 ## 落点 - 主仓:`TDLM/HMCL` → `AuthlibInjectorServer.java:45` ## 范式 - 命中范式:G4 信任边界(https://git.potatolab.uk/TDLM/mc-defect-patterns/raw/commit/12d2ebdc7a87175f936c2a67083be567e0e94301/sec/G4-信任边界.md)——候选 ## 引证 1. 生效源码 permalink — https://git.potatolab.uk/TDLM/HMCL/src/commit/bdacd654734c3665995a8c779da34139b9bdf373/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorServer.java#L45-L51 2. 范式 G4 — https://git.potatolab.uk/TDLM/mc-defect-patterns/raw/commit/12d2ebdc7a87175f936c2a67083be567e0e94301/sec/G4-信任边界.md ## 来源 - 线索类型:内部代码审查(无外部报障) - 可解析指针:`AuthlibInjectorServer.java:45-51`;commit `bdacd654734c3665995a8c779da34139b9bdf373` - 来源标签:`origin/scan`
layue13 added the area/network
priority
p3
area/security
type
security
origin/scan
labels 2026-11-09 14:24:07 +00:00
Author
Owner

Fixed on main via PR #14 — authlib-injector follows x-authlib-injector-api-location only on matching HTTPS hosts.

Merge: #14
Commit: c4240a24bf

Fixed on `main` via PR #14 — authlib-injector follows `x-authlib-injector-api-location` only on matching HTTPS hosts. Merge: https://git.nest.potatolab.uk:8443/TDLM/HMCL/pulls/14 Commit: c4240a24bf7635a26d6e45721c77b33d94bcb252
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TDLM/HMCL#13