{"id":"CVE-2026-111056","kind":"vulnerability","aliases":["CVE-2026-111056"],"related":[],"title":"FOSSBilling: guest signup reveals whether an email is a client","description":"FOSSBilling is an open source billing and client-management platform. From 0.1.0 until 0.8.7, the unauthenticated POST /api/guest/client/create endpoint reveals whether a submitted email belongs to a registered client because guest signup returns a distinct unredacted error when the submitted email already exists. The trigger is an unauthenticated request to POST /api/guest/client/create with a target email address. An attacker can compare the guest-signup response for a target email to determine whether the email belongs to an existing FOSSBilling client. Box\\Mod\\Client\\Api\\Guest::create returns the error after Client\\Service::clientAlreadyExists finds a matching record, and the API response exposes that exception message without redaction. This issue is fixed in version 0.8.7.","summary":"FOSSBilling's unauthenticated guest signup endpoint returns a distinct error when the submitted email already belongs to a client. An attacker can use this to confirm which email addresses hold accounts on a target billing instance.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["fossbilling","package","php","self-hosted"],"not_affected_if":["guest-api-blocked","version-0.8.7-or-later"],"how_to_check":"- Check the installed FOSSBilling version in the admin panel or the project's composer/package metadata; versions up to `0.8.7` exclusive are affected.\n- Send a POST to `/api/guest/client/create` with a known existing email and a new email from a test instance and compare the responses (unknown whether the sources give a exact response body).","fix":"- Upgrade FOSSBilling to `0.8.7` or later.","status":"open","published_at":"2026-10-19T16:17:03+00:00","first_seen_at":"2026-10-23T21:57:18+00:00","triaged_at":"2026-10-25T03:40:45+00:00","updated_at":"2026-10-25T03:40:45+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T03:40:45Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade FOSSBilling to `0.8.7` or later.","reach":"internet","title":"FOSSBilling: guest signup reveals whether an email is a client","impact":"low","summary":"FOSSBilling's unauthenticated guest signup endpoint returns a distinct error when the submitted email already belongs to a client. An attacker can use this to confirm which email addresses hold accounts on a target billing instance.","category":"package","nicknames":[],"who_cares":["fossbilling","self-hosted","php"],"confidence":0.8,"needs_auth":"no","worst_case":"attacker learns which emails belong to existing clients","analyst_note":"","how_to_check":"- Check the installed FOSSBilling version in the admin panel or the project's composer/package metadata; versions up to `0.8.7` exclusive are affected.\n- Send a POST to `/api/guest/client/create` with a known existing email and a new email from a test instance and compare the responses (unknown whether the sources give a exact response body).","needs_analyst":false,"not_affected_if":["version-0.8.7-or-later","guest-api-blocked"],"who_is_affected":"Any self-hosted FOSSBilling instance from `0.1.0` through `0.8.6` that exposes its API to the internet is exposed, since the endpoint needs no login. Instances where the guest API is blocked at the network or reverse-proxy layer are less exposed. Teams already on `0.8.7` or later are not affected.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000615,"input_tokens":3450,"output_tokens":539,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-111056':13A,16A '-2026':12A,15A '/api/guest/client/create':77C,111C '0.1.0':71C '0.8.7':73C,174C 'account':53B 'address':51B,116C 'alreadi':37B,101C 'api':144C,160C 'attack':43B,118C 'belong':38B,84C,135C 'bill':57B,64C 'box':141C 'client':10A,41B,67C,88C,140C,143C,151C 'client-manag':66C 'clientalreadyexist':153C 'compar':120C 'confirm':48B 'creat':146C 'cve':11A,14A 'determin':131C 'distinct':31B,94C 'email':7A,36B,50B,83C,100C,115C,129C,134C 'endpoint':28B,78C 'error':32B,96C,149C 'except':164C 'exist':102C,138C 'expos':162C 'find':154C 'fix':171C 'fossbil':1A,17B,23B,59C,139C 'guest':2A,26B,90C,123C,145C 'guest-signup':122C 'hold':52B 'host':22B 'instanc':58B 'issu':169C 'manag':68C 'match':156C 'messag':165C 'mod':142C 'open':62C 'packag':18B 'php':19B 'platform':69C 'post':76C,110C 'record':157C 'redact':167C 'regist':87C 'request':108C 'respons':125C,161C 'return':29B,92C,147C 'reveal':4A,79C 'self':21B 'self-host':20B 'servic':152C 'signup':3A,27B,91C,124C 'sourc':63C 'submit':35B,82C,99C 'target':56B,114C,128C 'trigger':104C 'unauthent':25B,75C,107C 'unredact':95C 'use':45B 'version':173C 'whether':5A,80C,132C 'without':166C","nicknames":[],"mitigations":[],"who_affected":"Any self-hosted FOSSBilling instance from `0.1.0` through `0.8.6` that exposes its API to the internet is exposed, since the endpoint needs no login. Instances where the guest API is blocked at the network or reverse-proxy layer are less exposed. Teams already on `0.8.7` or later are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-19T16:17:03+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-111056","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111056","severity":null,"published_at":"2026-10-19T16:17:03+00:00","modified_at":"2026-10-22T04:17:29+00:00","first_seen_at":"2026-10-23T21:57:18+00:00","fetched_at":"2026-10-23T22:28:57+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"}