{"id":"CVE-2026-110975","kind":"vulnerability","aliases":["CVE-2026-110975"],"related":[],"title":"Kruize Autotune: REST API returns datasource secrets in cleartext","description":"A flaw was found in Kruize Autotune. Its REST API ships without an authentication layer, and the endpoints that return datasource configuration — the list-datasources endpoint (GET /datasources) and the datasource-metadata endpoint — serialized datasource objects using a default Gson configuration with no field-exclusion strategy. As a result, the authentication secrets stored for each configured monitoring datasource (basic-auth passwords, bearer tokens, API keys, and OAuth2 client secrets) were returned in cleartext to any client able to reach the service. An attacker with network access to Autotune could harvest these credentials and reuse them to authenticate to the backing monitoring stack.","summary":"Kruize Autotune's REST API has no authentication layer, and its datasource endpoints serialize stored secrets such as basic-auth passwords, bearer tokens, API keys and OAuth2 client secrets. Any client that can reach the service can read these credentials and reuse them against the backing monitoring stack.","severity":"high","cvss":7.4,"epss":0.00314,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["kruize-autotune","kubernetes","monitoring","package","prometheus"],"not_affected_if":["api-not-reachable","no-datasource-credentials"],"how_to_check":"- Check whether the Autotune REST API is reachable from outside the cluster or a trusted network.\n- Request `GET /datasources` from a host without credentials and see whether datasource auth fields are returned.\n- Confirm the installed Autotune version against the fixed release; the sources do not name the fixed version, so unknown.","fix":"- Restrict network access to the Autotune REST API to trusted clients only.\n- Rotate every datasource credential (basic-auth passwords, bearer tokens, API keys, OAuth2 client secrets) that Autotune stored.\n- Upgrade Kruize Autotune once a release with a field-exclusion strategy is published; the fixed version is unknown from the sources.","status":"open","published_at":"2026-10-23T18:17:20+00:00","first_seen_at":"2026-10-23T21:57:34+00:00","triaged_at":"2026-10-25T03:25:28+00:00","updated_at":"2026-10-25T12:38:50+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:25:28Z","model":"claude-haiku-5-5","output":{"fix":"- Restrict network access to the Autotune REST API to trusted clients only.\n- Rotate every datasource credential (basic-auth passwords, bearer tokens, API keys, OAuth2 client secrets) that Autotune stored.\n- Upgrade Kruize Autotune once a release with a field-exclusion strategy is published; the fixed version is unknown from the sources.","reach":"network","title":"Kruize Autotune: REST API returns datasource secrets in cleartext","impact":"high","summary":"Kruize Autotune's REST API has no authentication layer, and its datasource endpoints serialize stored secrets such as basic-auth passwords, bearer tokens, API keys and OAuth2 client secrets. Any client that can reach the service can read these credentials and reuse them against the backing monitoring stack.","category":"package","nicknames":[],"who_cares":["kubernetes","kruize-autotune","monitoring","prometheus"],"confidence":0.7,"needs_auth":"no","worst_case":"Attacker reads datasource secrets and reuses them against monitoring backends","analyst_note":"Find the fixed Autotune version and whether authentication was added to the REST API; the NVD entry alone does not name them.","how_to_check":"- Check whether the Autotune REST API is reachable from outside the cluster or a trusted network.\n- Request `GET /datasources` from a host without credentials and see whether datasource auth fields are returned.\n- Confirm the installed Autotune version against the fixed release; the sources do not name the fixed version, so unknown.","needs_analyst":true,"not_affected_if":["no-datasource-credentials","api-not-reachable"],"who_is_affected":"Teams running Kruize Autotune that have configured monitoring datasources with authentication secrets are exposed, because the endpoints return those secrets. Exposure depends on whether the REST API is reachable by untrusted clients; deployments limited to a private network with no outside access carry lower risk. Installations that store no datasource credentials have nothing to leak from these endpoints.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000707,"input_tokens":3417,"output_tokens":731,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-110975':12A,15A '-2026':11A,14A '/datasources':100C 'abl':152C 'access':161C 'api':4A,27B,47B,81C,139C 'attack':158C 'auth':43B,135C 'authent':30B,85C,125C,172C 'autotun':2A,18B,24B,78C,163C 'back':69B,175C 'basic':42B,134C 'basic-auth':41B,133C 'bearer':45B,137C 'cleartext':9A,148C 'client':51B,54B,143C,151C 'configur':93C,114C,130C 'could':164C 'credenti':63B,167C 'cve':10A,13A 'datasourc':6A,34B,92C,97C,104C,108C,132C 'datasource-metadata':103C 'default':112C 'endpoint':35B,89C,98C,106C 'exclus':119C 'field':118C 'field-exclus':117C 'flaw':73C 'found':75C 'get':99C 'gson':113C 'harvest':165C 'key':48B,140C 'kruiz':1A,17B,23B,77C 'kruize-autotun':16B 'kubernet':19B 'layer':31B,86C 'list':96C 'list-datasourc':95C 'metadata':105C 'monitor':20B,70B,131C,176C 'network':160C 'oauth2':50B,142C 'object':109C 'packag':21B 'password':44B,136C 'prometheus':22B 'reach':57B,154C 'read':61B 'rest':3A,26B,80C 'result':123C 'return':5A,91C,146C 'reus':65B,169C 'secret':7A,38B,52B,126C,144C 'serial':36B,107C 'servic':59B,156C 'ship':82C 'stack':71B,177C 'store':37B,127C 'strategi':120C 'token':46B,138C 'use':110C 'without':83C","nicknames":[],"mitigations":[],"who_affected":"Teams running Kruize Autotune that have configured monitoring datasources with authentication secrets are exposed, because the endpoints return those secrets. Exposure depends on whether the REST API is reachable by untrusted clients; deployments limited to a private network with no outside access carry lower risk. Installations that store no datasource credentials have nothing to leak from these endpoints.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T18:17:20+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","cvss_by":"secalert@redhat.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-110975","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110975","severity":null,"published_at":"2026-10-23T18:17:20+00:00","modified_at":"2026-10-23T21:17:21+00:00","first_seen_at":"2026-10-23T21:57:34+00:00","fetched_at":"2026-10-23T22:29:04+00:00","note":null},{"source":"epss","external_id":"CVE-2026-110975","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-110975","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:50+00:00","fetched_at":"2026-10-25T12:38:50+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}