{"id":"CVE-2026-111886","kind":"vulnerability","aliases":["CVE-2026-111886"],"related":[],"title":"phpMyFAQ: 2FA removal endpoint lacks brute-force lockout, allowing TOTP guessing","description":"phpMyFAQ from 4.2.0-alpha.2 before 4.2.0-beta lacks brute-force lockout in the removeTwofactorConfig() 2FA removal endpoint, allowing authenticated attackers to guess TOTP codes without limit. Attackers holding a hijacked session and CSRF token can repeatedly POST guesses to /api/user/remove-twofactor to permanently disable the victim's 2FA.","summary":"phpMyFAQ from 4.2.0-alpha.2 before 4.2.0-beta does not limit failed attempts on its two-factor removal endpoint. An attacker with a hijacked session and CSRF token can guess TOTP codes without limit and permanently disable the victim's 2FA.","severity":"high","cvss":7.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","php","phpmyfaq","self-hosted"],"not_affected_if":["default-config"],"how_to_check":"- Check the installed phpMyFAQ version, for example by reading the version in the admin panel or `composer show phpmyfaq/phpmyfaq` if installed via Composer.\n- Confirm whether the instance is running a version from `4.2.0-alpha.2` up to but not including `4.2.0-beta`.","fix":"- Upgrade phpMyFAQ to `4.2.0-beta` or later.\n- Until upgraded, rotate session secrets and review accounts that show 2FA removed unexpectedly.","status":"open","published_at":"2026-10-17T19:16:29+00:00","first_seen_at":"2026-10-23T21:57:14+00:00","triaged_at":"2026-10-25T03:36:23+00:00","updated_at":"2026-10-25T03:36:23+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:36:23Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade phpMyFAQ to `4.2.0-beta` or later.\n- Until upgraded, rotate session secrets and review accounts that show 2FA removed unexpectedly.","reach":"internet","title":"phpMyFAQ: 2FA removal endpoint lacks brute-force lockout, allowing TOTP guessing","impact":"medium","summary":"phpMyFAQ from 4.2.0-alpha.2 before 4.2.0-beta does not limit failed attempts on its two-factor removal endpoint. An attacker with a hijacked session and CSRF token can guess TOTP codes without limit and permanently disable the victim's 2FA.","category":"package","nicknames":[],"who_cares":["phpmyfaq","php","self-hosted"],"confidence":0.7,"needs_auth":"yes","worst_case":"Attacker permanently disables victim's two-factor authentication after guessing TOTP codes.","analyst_note":"Sources do not list the exact fixed version beyond 4.2.0-beta or a patch commit; confirm against the phpMyFAQ release notes and advisory.","how_to_check":"- Check the installed phpMyFAQ version, for example by reading the version in the admin panel or `composer show phpmyfaq/phpmyfaq` if installed via Composer.\n- Confirm whether the instance is running a version from `4.2.0-alpha.2` up to but not including `4.2.0-beta`.","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"Instances of phpMyFAQ in the 4.2.0-alpha.2 to pre-4.2.0-beta range that have two-factor authentication enabled for users are exposed. Instances on earlier or later versions, or installations where no users use 2FA, are not affected by this flaw.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000669,"input_tokens":3387,"output_tokens":661,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-111886':15A,18A '-2026':14A,17A '/api/user/remove-twofactor':106C '2fa':2A,65B,81C,113C '4.2.0':27B,30B,68C,71C 'allow':10A,84C 'alpha.2':28B,69C 'attack':45B,86C,93C 'attempt':36B 'authent':85C 'beta':31B,72C 'brute':7A,75C 'brute-forc':6A,74C 'code':56B,90C 'csrf':51B,99C 'cve':13A,16A 'disabl':61B,109C 'endpoint':4A,43B,83C 'factor':41B 'fail':35B 'forc':8A,76C 'guess':12A,54B,88C,104C 'hijack':48B,96C 'hold':94C 'host':24B 'lack':5A,73C 'limit':34B,58B,92C 'lockout':9A,77C 'packag':19B 'perman':60B,108C 'php':20B 'phpmyfaq':1A,21B,25B,66C 'post':103C 'remov':3A,42B,82C 'removetwofactorconfig':80C 'repeat':102C 'self':23B 'self-host':22B 'session':49B,97C 'token':52B,100C 'totp':11A,55B,89C 'two':40B 'two-factor':39B 'victim':63B,111C 'without':57B,91C","nicknames":[],"mitigations":[],"who_affected":"Instances of phpMyFAQ in the 4.2.0-alpha.2 to pre-4.2.0-beta range that have two-factor authentication enabled for users are exposed. Instances on earlier or later versions, or installations where no users use 2FA, are not affected by this flaw.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-17T19:16:29+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/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":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-111886","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111886","severity":null,"published_at":"2026-10-17T19:16:29+00:00","modified_at":"2026-10-18T14:16:54+00:00","first_seen_at":"2026-10-23T21:57:14+00:00","fetched_at":"2026-10-23T22:28:55+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"}