{"id":"CVE-2026-111874","kind":"vulnerability","aliases":["CVE-2026-111874"],"related":[],"title":"OpenCATS: Career Portal login lacks limits on repeated authentication attempts","description":"A flaw has been found in OpenCATS 0.10.0. Affected is the function processLogin of the file modules/careers/CareersUI.php of the component Career Portal. This manipulation of the argument applyToJobSubAction causes improper restriction of excessive authentication attempts. Remote exploitation of the attack is possible. A high degree of complexity is needed for the attack. The exploitability is told to be difficult. The exploit has been published and may be used. Patch name: 1cf4fa3ee9054314b023be79d404078645c22ade. It is suggested to install a patch to address this issue. The project maintainer explains: \"Candidates will now need to authenticate each time they access the Career Portal and successfully complete the CAPTCHA as part of that authentication flow. The authenticated candidate identity is now maintained server-side rather than relying on the previous persistent client-side cats…cw cookie mechanism. Application-level rate limiting is deliberately not in scope for this change. In my view, request throttling and brute-force protection of that kind are better applied at the network, reverse-proxy or web-server layer, where they can be configured appropriately for each deployment without OpenCATS having to implement and maintain its own rate-limiting framework. I'll update the online documentation to that effect.\"","summary":"OpenCATS 0.10.0's Career Portal login function processLogin in modules/careers/CareersUI.php does not restrict excessive authentication attempts, so an attacker can try many logins against candidate accounts. The sources describe a published exploit, a difficult attack, and a patch that moves candidate sessions server-side and adds a CAPTCHA to the login flow.","severity":"low","cvss":3.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["career-portal","opencats","package","php","self-hosted"],"not_affected_if":["career-portal-disabled","private-network-only"],"how_to_check":"- Check the installed OpenCATS version; `0.10.0` is the affected release.\n- Look for the `applyToJobSubAction` parameter handling in `modules/careers/CareersUI.php` on the Career Portal.\n- Confirm whether the Career Portal is publicly reachable on your deployment.","fix":"- Move OpenCATS to the release containing patch `1cf4fa3ee9054314b023be79d404078645c22ade`, which requires CAPTCHA and server-side candidate sessions on every Career Portal access.\n- Add rate limiting or brute-force protection at the reverse proxy or web server in front of the Career Portal, since the maintainer does not implement it in the application.","status":"open","published_at":"2026-10-18T06:16:56+00:00","first_seen_at":"2026-10-23T21:57:14+00:00","triaged_at":"2026-10-25T04:45:20+00:00","updated_at":"2026-10-25T04:45:20+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-25T04:45:20Z","model":"claude-haiku-5-5","output":{"fix":"- Move OpenCATS to the release containing patch `1cf4fa3ee9054314b023be79d404078645c22ade`, which requires CAPTCHA and server-side candidate sessions on every Career Portal access.\n- Add rate limiting or brute-force protection at the reverse proxy or web server in front of the Career Portal, since the maintainer does not implement it in the application.","reach":"internet","title":"OpenCATS: Career Portal login lacks limits on repeated authentication attempts","impact":"medium","summary":"OpenCATS 0.10.0's Career Portal login function processLogin in modules/careers/CareersUI.php does not restrict excessive authentication attempts, so an attacker can try many logins against candidate accounts. The sources describe a published exploit, a difficult attack, and a patch that moves candidate sessions server-side and adds a CAPTCHA to the login flow.","category":"package","nicknames":[],"who_cares":["self-hosted","php","opencats","career-portal"],"confidence":0.6,"needs_auth":"no","worst_case":"Attacker guesses candidate passwords through repeated remote login attempts","analyst_note":"Confirm the exact affected versions and whether the Career Portal login and candidate session data are exposed beyond brute force, using the NVD entry and the linked patch commit.","how_to_check":"- Check the installed OpenCATS version; `0.10.0` is the affected release.\n- Look for the `applyToJobSubAction` parameter handling in `modules/careers/CareersUI.php` on the Career Portal.\n- Confirm whether the Career Portal is publicly reachable on your deployment.","needs_analyst":true,"not_affected_if":["career-portal-disabled","private-network-only"],"who_is_affected":"Teams running OpenCATS 0.10.0 with the Career Portal exposed to the internet are affected, because candidate logins can be attacked remotely. Installations that keep the Career Portal off the public network, or that already apply proxy-level throttling, face much less exposure. Teams on other OpenCATS versions should confirm against the patch commit.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.00074,"input_tokens":3614,"output_tokens":757,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-111874':13A,16A '-2026':12A,15A '0.10.0':27B,86C '1cf4fa3ee9054314b023be79d404078645c22ade':149C 'access':174C 'account':51B 'add':72B 'address':158C 'affect':87C 'appli':241C 'applic':214C 'application-level':213C 'applytojobsubact':106C 'appropri':258C 'argument':105C 'attack':44B,60B,118C,130C 'attempt':10A,41B,113C 'authent':9A,40B,112C,170C,187C,190C 'better':240C 'brute':233C 'brute-forc':232C 'candid':50B,66B,165C,191C 'captcha':74B,182C 'career':2A,18B,29B,99C,176C 'career-port':17B 'cat':209C 'caus':107C 'chang':225C 'client':207C 'client-sid':206C 'complet':180C 'complex':125C 'compon':98C 'configur':257C 'cooki':211C 'cve':11A,14A 'cw':210C 'degre':123C 'deliber':219C 'deploy':261C 'describ':54B 'difficult':59B,137C 'document':280C 'effect':283C 'excess':39B,111C 'explain':164C 'exploit':57B,115C,132C,139C 'file':94C 'flaw':80C 'flow':78B,188C 'forc':234C 'found':83C 'framework':274C 'function':32B,90C 'high':122C 'host':25B 'ident':192C 'implement':266C 'improp':108C 'instal':154C 'issu':160C 'kind':238C 'lack':5A 'layer':252C 'level':215C 'limit':6A,217C,273C 'll':276C 'login':4A,31B,48B,77B 'maintain':163C,195C,268C 'mani':47B 'manipul':102C 'may':144C 'mechan':212C 'modules/careers/careersui.php':35B,95C 'move':65B 'name':148C 'need':127C,168C 'network':244C 'onlin':279C 'opencat':1A,20B,26B,85C,263C 'packag':21B 'part':184C 'patch':63B,147C,156C 'persist':205C 'php':22B 'portal':3A,19B,30B,100C,177C 'possibl':120C 'previous':204C 'processlogin':33B,91C 'project':162C 'protect':235C 'proxi':247C 'publish':56B,142C 'rate':216C,272C 'rate-limit':271C 'rather':199C 'reli':201C 'remot':114C 'repeat':8A 'request':229C 'restrict':38B,109C 'revers':246C 'reverse-proxi':245C 'scope':222C 'self':24B 'self-host':23B 'server':69B,197C,251C 'server-sid':68B,196C 'session':67B 'side':70B,198C,208C 'sourc':53B 'success':179C 'suggest':152C 'throttl':230C 'time':172C 'told':134C 'tri':46B 'updat':277C 'use':146C 'view':228C 'web':250C 'web-serv':249C 'without':262C","nicknames":[],"mitigations":[],"who_affected":"Teams running OpenCATS 0.10.0 with the Career Portal exposed to the internet are affected, because candidate logins can be attacked remotely. Installations that keep the Career Portal off the public network, or that already apply proxy-level throttling, face much less exposure. Teams on other OpenCATS versions should confirm against the patch commit.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T06:16:56+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P/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":"cna@vuldb.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-111874","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111874","severity":null,"published_at":"2026-10-18T06:16:56+00:00","modified_at":"2026-10-19T16:17:04+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"}