---
id: "CVE-2026-111874"
kind: "vulnerability"
aliases: ["CVE-2026-111874"]
title: "OpenCATS: Career Portal login lacks limits on repeated authentication attempts"
severity: "low"
cvss: 3.7
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["career-portal", "opencats", "package", "php", "self-hosted"]
not_affected_if: ["career-portal-disabled", "private-network-only"]
published_at: "2026-10-18T06:16:56+00:00"
first_seen_at: "2026-10-23T21:57:14+00:00"
updated_at: "2026-10-25T04:45:20+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-111874", "first_seen_at": "2026-10-23T21:57:14+00:00"}]
---

# OpenCATS: Career Portal login lacks limits on repeated authentication attempts

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.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed OpenCATS version; `0.10.0` is the affected release.
- Look for the `applyToJobSubAction` parameter handling in `modules/careers/CareersUI.php` on the Career Portal.
- 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.
- 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.

## Timeline

- 2026-10-23T21:57:14+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-111874

## From the sources

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."

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
