TS-2024-009
Vulnerability from tailscale - Published: Thu, 27 Jun 2024 00:00:00 GMT
Description: Potential for API credential disclosure over plaintext HTTP
What happened?
The Tailscale API is primarily accessible over TLS-encrypted HTTP at
api.tailscale.com. It also has a limited plaintext HTTP handler to serve HTTP
to HTTPS redirects.
Browsers that connect over plaintext HTTP do not send cookies marked as Secure
to prevent them from being disclosed to network intermediaries.
However, API clients that connect using plaintext HTTP and send requests with authentication tokens in headers have no such protections to prevent disclosure.
Before June 26, 2024, the Tailscale API did not reject credentialed plaintext API requests and instead served them HTTP 302 redirects as it would to browsers. Typical HTTP client libraries handle redirects transparently, and consequently, the user would not necessarily know their credentials had been exposed.
Starting on June 26, 2024, the Tailscale API now returns errors for all plaintext HTTP requests that include credentials. Additionally, the Tailscale API now automatically revokes API keys that it observes sent over HTTP and notifies Tailnet security owners of this action.
Who was affected?
Any Tailscale API client that connected over plaintext HTTP using credentials before June 26, 2024.
What was the impact?
API clients that connected over plaintext HTTP before June 26, 2024 would have exposed their credentials to network intermediaries, risking them to theft and replay.
What do I need to do?
No action is needed at this time.
Credits
Thanks to Joachim Viide for reporting this issue.
Show details on source website{
"guidislink": false,
"id": "https://tailscale.com/security-bulletins/#ts-2024-009",
"link": "https://tailscale.com/security-bulletins/#ts-2024-009",
"links": [
{
"href": "https://tailscale.com/security-bulletins/#ts-2024-009",
"rel": "alternate",
"type": "text/html"
}
],
"published": "Thu, 27 Jun 2024 00:00:00 GMT",
"summary": "\u003cp\u003e\u003cstrong\u003e\u003cem\u003eDescription\u003c/em\u003e\u003c/strong\u003e: Potential for API credential disclosure over plaintext HTTP\u003c/p\u003e\n\u003ch4\u003eWhat happened?\u003c/h4\u003e\n\u003cp\u003eThe \u003ca href=\"https://tailscale.com/kb/1101/api\"\u003eTailscale API\u003c/a\u003e is primarily accessible over TLS-encrypted HTTP at\n\u003ccode\u003eapi.tailscale.com\u003c/code\u003e. It also has a limited plaintext HTTP handler to serve HTTP\nto HTTPS redirects.\u003c/p\u003e\n\u003cp\u003eBrowsers that connect over plaintext HTTP do not send cookies marked as \u003ccode\u003eSecure\u003c/code\u003e\nto prevent them from being disclosed to network intermediaries.\u003c/p\u003e\n\u003cp\u003eHowever, API clients that connect using plaintext HTTP and send requests\nwith authentication tokens in headers have no such protections to prevent\ndisclosure.\u003c/p\u003e\n\u003cp\u003eBefore June 26, 2024, the Tailscale API did not reject credentialed plaintext\nAPI requests and instead served them HTTP 302 redirects as it would to browsers.\nTypical HTTP client libraries handle redirects transparently, and consequently, the user\nwould not necessarily know their credentials had been exposed.\u003c/p\u003e\n\u003cp\u003eStarting on June 26, 2024, the Tailscale API now returns errors for all plaintext\nHTTP requests that include credentials. Additionally, the Tailscale API now\nautomatically revokes API keys that it observes sent over HTTP and notifies\nTailnet security owners of this action.\u003c/p\u003e\n\u003ch4\u003eWho was affected?\u003c/h4\u003e\n\u003cp\u003eAny Tailscale API client that connected over plaintext HTTP using credentials\nbefore June 26, 2024.\u003c/p\u003e\n\u003ch4\u003eWhat was the impact?\u003c/h4\u003e\n\u003cp\u003eAPI clients that connected over plaintext HTTP before June 26, 2024 would have\nexposed their credentials to network intermediaries, risking them to theft and\nreplay.\u003c/p\u003e\n\u003ch4\u003eWhat do I need to do?\u003c/h4\u003e\n\u003cp\u003eNo action is needed at this time.\u003c/p\u003e\n\u003ch4\u003eCredits\u003c/h4\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://jviide.iki.fi/\"\u003eJoachim Viide\u003c/a\u003e for reporting this issue.\u003c/p\u003e",
"summary_detail": {
"base": "https://tailscale.com/security-bulletins/index.xml",
"language": null,
"type": "text/html",
"value": "\u003cp\u003e\u003cstrong\u003e\u003cem\u003eDescription\u003c/em\u003e\u003c/strong\u003e: Potential for API credential disclosure over plaintext HTTP\u003c/p\u003e\n\u003ch4\u003eWhat happened?\u003c/h4\u003e\n\u003cp\u003eThe \u003ca href=\"https://tailscale.com/kb/1101/api\"\u003eTailscale API\u003c/a\u003e is primarily accessible over TLS-encrypted HTTP at\n\u003ccode\u003eapi.tailscale.com\u003c/code\u003e. It also has a limited plaintext HTTP handler to serve HTTP\nto HTTPS redirects.\u003c/p\u003e\n\u003cp\u003eBrowsers that connect over plaintext HTTP do not send cookies marked as \u003ccode\u003eSecure\u003c/code\u003e\nto prevent them from being disclosed to network intermediaries.\u003c/p\u003e\n\u003cp\u003eHowever, API clients that connect using plaintext HTTP and send requests\nwith authentication tokens in headers have no such protections to prevent\ndisclosure.\u003c/p\u003e\n\u003cp\u003eBefore June 26, 2024, the Tailscale API did not reject credentialed plaintext\nAPI requests and instead served them HTTP 302 redirects as it would to browsers.\nTypical HTTP client libraries handle redirects transparently, and consequently, the user\nwould not necessarily know their credentials had been exposed.\u003c/p\u003e\n\u003cp\u003eStarting on June 26, 2024, the Tailscale API now returns errors for all plaintext\nHTTP requests that include credentials. Additionally, the Tailscale API now\nautomatically revokes API keys that it observes sent over HTTP and notifies\nTailnet security owners of this action.\u003c/p\u003e\n\u003ch4\u003eWho was affected?\u003c/h4\u003e\n\u003cp\u003eAny Tailscale API client that connected over plaintext HTTP using credentials\nbefore June 26, 2024.\u003c/p\u003e\n\u003ch4\u003eWhat was the impact?\u003c/h4\u003e\n\u003cp\u003eAPI clients that connected over plaintext HTTP before June 26, 2024 would have\nexposed their credentials to network intermediaries, risking them to theft and\nreplay.\u003c/p\u003e\n\u003ch4\u003eWhat do I need to do?\u003c/h4\u003e\n\u003cp\u003eNo action is needed at this time.\u003c/p\u003e\n\u003ch4\u003eCredits\u003c/h4\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://jviide.iki.fi/\"\u003eJoachim Viide\u003c/a\u003e for reporting this issue.\u003c/p\u003e"
},
"title": "TS-2024-009",
"title_detail": {
"base": "https://tailscale.com/security-bulletins/index.xml",
"language": null,
"type": "text/plain",
"value": "TS-2024-009"
}
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.