150 lines
7.9 KiB
JSON
150 lines
7.9 KiB
JSON
{
|
||
"dataType": "CVE_RECORD",
|
||
"dataVersion": "5.2",
|
||
"cveMetadata": {
|
||
"cveId": "CVE-2026-86249",
|
||
"assignerOrgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
|
||
"state": "PUBLISHED",
|
||
"assignerShortName": "apache",
|
||
"dateReserved": "2026-09-06T11:17:57.587Z",
|
||
"datePublished": "2026-10-21T12:17:42.903Z",
|
||
"dateUpdated": "2026-10-30T17:05:52.803Z"
|
||
},
|
||
"containers": {
|
||
"cna": {
|
||
"providerMetadata": {
|
||
"orgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
|
||
"shortName": "apache",
|
||
"dateUpdated": "2026-10-21T12:17:42.903Z"
|
||
},
|
||
"title": "Apache bRPC: Authentication bypass when a server sets ServerOptions.internal_port and ServerOptions.auth",
|
||
"problemTypes": [
|
||
{
|
||
"descriptions": [
|
||
{
|
||
"description": "CWE-287 Improper Authentication",
|
||
"lang": "en",
|
||
"cweId": "CWE-287",
|
||
"type": "CWE"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"source": {
|
||
"discovery": "INTERNAL"
|
||
},
|
||
"affected": [
|
||
{
|
||
"vendor": "Apache Software Foundation",
|
||
"product": "Apache bRPC",
|
||
"packageURL": "pkg:github/apache/brpc",
|
||
"versions": [
|
||
{
|
||
"status": "affected",
|
||
"version": "0",
|
||
"lessThan": "1.18.0",
|
||
"versionType": "semver"
|
||
}
|
||
],
|
||
"defaultStatus": "unaffected",
|
||
"collectionURL": "https://github.com",
|
||
"packageName": "apache/brpc"
|
||
}
|
||
],
|
||
"descriptions": [
|
||
{
|
||
"value": "On a brpc::Server that sets both ServerOptions.auth and ServerOptions.internal_port, the HTTP built-in service exemption on internal_port can be abused to bypass authentication entirely. VerifyHttpRequest() returns true without checking any credential when a built-in service is requested on internal_port, and this verdict is not per - request: verification runs only for the first message of a connection and the result latches the connection. Sending a request such as GET /status to internal_port first authenticates the whole connection, after which every subsequent request dispatched on the same connection is handled without ever calling VerifyHttpRequest(). This lets a remote attacker reach ordinary (non-built-in, non-tabbed) authenticated services without supplying valid credentials whenever the server uses ServerOptions.internal_port together with an Authenticator. The fix restricts internal_port so that it carries only built-in and Tabbed services; requests for ordinary services sent to internal_port are rejected with EPREM / HTTP 403. \n\n\n\nMitigation / Fix: upgrade to 1.18.0 or apply PR https://github.com/apache/brpc/pull/3525 . \n\n\n\nUsers who rely on serving normal services on internal_port must move those requests to the port passed to Server::Start().",
|
||
"lang": "en",
|
||
"supportingMedia": [
|
||
{
|
||
"type": "text/html",
|
||
"base64": false,
|
||
"value": "<p>On a brpc::Server that sets both ServerOptions.auth and ServerOptions.internal_port, the HTTP built-in service exemption on internal_port can be abused to bypass authentication entirely. VerifyHttpRequest() returns true without checking any credential when a built-in service is requested on internal_port, and this verdict is not per - request: verification runs only for the first message of a connection and the result latches the connection. Sending a request such as GET /status to internal_port first authenticates the whole connection, after which every subsequent request dispatched on the same connection is handled without ever calling VerifyHttpRequest(). This lets a remote attacker reach ordinary (non-built-in, non-tabbed) authenticated services without supplying valid credentials whenever the server uses ServerOptions.internal_port together with an Authenticator. The fix restricts internal_port so that it carries only built-in and Tabbed services; requests for ordinary services sent to internal_port are rejected with EPREM / HTTP 403. </p><p>Mitigation / Fix: upgrade to 1.18.0 or apply PR https://github.com/apache/brpc/pull/3525 . </p><p>Users who rely on serving normal services on internal_port must move those requests to the port passed to Server::Start().</p>"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"references": [
|
||
{
|
||
"url": "https://github.com/apache/brpc/pulls/3525",
|
||
"name": "PR-3525"
|
||
},
|
||
{
|
||
"url": "https://lists.apache.org/thread/2pf15ojj0vr7rtx95677kgtl1mx3gdgb",
|
||
"tags": [
|
||
"vendor-advisory"
|
||
]
|
||
}
|
||
],
|
||
"metrics": [
|
||
{
|
||
"other": {
|
||
"type": "Textual description of severity",
|
||
"content": {
|
||
"text": "moderate"
|
||
}
|
||
},
|
||
"scenarios": [
|
||
{
|
||
"lang": "en",
|
||
"value": "GENERAL"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"x_generator": {
|
||
"engine": "Vulnogram 0.2.0"
|
||
}
|
||
},
|
||
"adp": [
|
||
{
|
||
"metrics": [
|
||
{
|
||
"cvssV3_1": {
|
||
"scope": "UNCHANGED",
|
||
"version": "3.1",
|
||
"baseScore": 9.1,
|
||
"attackVector": "NETWORK",
|
||
"baseSeverity": "CRITICAL",
|
||
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
|
||
"integrityImpact": "HIGH",
|
||
"userInteraction": "NONE",
|
||
"attackComplexity": "LOW",
|
||
"availabilityImpact": "NONE",
|
||
"privilegesRequired": "NONE",
|
||
"confidentialityImpact": "HIGH"
|
||
}
|
||
},
|
||
{
|
||
"other": {
|
||
"type": "ssvc",
|
||
"content": {
|
||
"timestamp": "2026-10-30T17:05:29.302596Z",
|
||
"id": "CVE-2026-86249",
|
||
"options": [
|
||
{
|
||
"Exploitation": "none"
|
||
},
|
||
{
|
||
"Automatable": "yes"
|
||
},
|
||
{
|
||
"Technical Impact": "total"
|
||
}
|
||
],
|
||
"role": "CISA Coordinator",
|
||
"version": "2.0.3"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"title": "CISA ADP Vulnrichment",
|
||
"providerMetadata": {
|
||
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
||
"shortName": "CISA-ADP",
|
||
"dateUpdated": "2026-10-30T17:05:52.803Z"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
} |