---
id: "CVE-2026-54453"
kind: "vulnerability"
aliases: ["CVE-2026-54453"]
title: "OpenCATS: license key input writes PHP code into config.php"
severity: "high"
cvss: 7.2
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["opencats", "package", "php", "recruiting", "self-hosted"]
not_affected_if: ["config-not-writable", "no-settings-access", "upgraded-to-0.10.0"]
published_at: "2026-10-28T22:17:15+00:00"
first_seen_at: "2026-10-28T22:35:35+00:00"
updated_at: "2026-10-28T22:36:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-54453", "first_seen_at": "2026-10-28T22:35:35+00:00"}]
---

# OpenCATS: license key input writes PHP code into config.php

OpenCATS before 0.10.0 writes the Professional License key into config.php inside a PHP define() statement without escaping. An authenticated administrator with Settings access can break out of that statement and make the web server run arbitrary PHP that persists in the config file.

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

## How to check

- Check the installed OpenCATS version against `0.10.0` in the application's version file or admin footer.
- Confirm whether `config.php` is writable by the web server user, for example with `ls -l config.php`, since the write path requires it.

## Fix

- Upgrade OpenCATS to `0.10.0` or later.
- Until upgraded, make `config.php` read-only for the web server user and restrict Settings and Professional License access to trusted administrators.

## Timeline

- 2026-10-28T22:35:35+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-54453

## From the sources

OpenCATS is an open-source applicant tracking system and recruitment CRM for staffing agencies and hiring teams. Prior to version 0.10.0, the Professional License configuration feature in `SettingsUI` (`manageProfessional`) accepts administrator-controlled license key input that is reconstructed into a PHP `define()` statement in `config.php` without safe escaping. Because the application includes `config.php`, crafted input can alter the file's PHP syntax and cause persistent arbitrary PHP execution with the web server process privileges. An authenticated administrator must have Settings module access and permission to update Professional License configuration, and `config.php` must be writable for this write-based path. Successful exploitation can read, modify or delete application data, expose candidate, contact, company, job order and user account information, alter the installation or configuration, and provide a foothold for further attacks. Unauthenticated exploitation and exploitation without Settings access are not established. This issue is fixed in version 0.10.0.

---

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