{"id":11990,"date":"2026-09-04T18:54:00","date_gmt":"2026-09-04T10:54:00","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-81027"},"modified":"2026-09-04T18:54:00","modified_gmt":"2026-09-04T10:54:00","slug":"cve-2026-81027","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-81027","title":{"rendered":"CVE-2026-81027 [HIGH] &#8211; one-api gates one of its two channel-pinning paths and not the other. middleware\/auth.go p"},"content":{"rendered":"<p>one-api gates one of its two channel-pinning paths and not the other. middleware\/auth.go permits a request to name a specific channel either through a suffix on the API key or through a URL path parameter. The suffix path is reached only after model.IsAdmin succeeds and otherwise rejects the caller, while the path-parameter branch sets the selected-channel value from c.Param(&#8220;channelid&#8221;) with no role check at all. The route carrying that parameter sits behind token authentication only, so any account holding a valid API token reaches it. The value flows to the distributor, which loads the channel by integer identifier with no scoping to the caller&#8217;s user or group, and then sets the outbound Authorization header to that channel&#8217;s stored key and directs the request at the channel&#8217;s base URL. A low-privilege account can therefore pin any channel by incrementing an identifier, causing the server to make upstream requests bearing an operator-configured provider key the account was never granted, and bypassing both the per-group restriction and the channel&#8217;s model allowlist.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>one-api gates one of its two channel-pinning paths and not the other. middleware\/auth.go permits a request to name a specific channel either through a suffix on the API key or through a URL path param<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-11990","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/11990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}