LiveActive security incident?Get immediate response
CVE Record

CVE-2021-47936: OpenCATS 0.9.4 Remote Code Execution via Resume Upload

OpenCATS 0.9.4 contains a remote code execution vulnerability that allows unauthenticated attackers to execute arbitrary commands by uploading malicious PHP files disguised as resume attachments. Attackers can upload PHP payloads through the careers job application endpoint and execute system commands via POST requests to the uploaded file in the upload directory.

CriticalCVSS 9.8Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

A flaw in OpenCATS 0.9.4 (a recruiting and applicant-tracking system) lets an unauthenticated attacker upload a booby-trapped file disguised as a resume and then run commands on the server. In plain terms, anyone on the internet who can use the careers page could potentially take over the recruiting system and the candidate data it holds.

Executive priority

Treat as urgent if OpenCATS 0.9.4 is internet-exposed. Unauthenticated remote code execution on an HR recruiting system risks candidate data exposure, lateral movement, and reputational harm. Prioritize isolation and vendor guidance review this week.

Technical view

CVE-2021-47936 is an unauthenticated remote code execution in OpenCATS 0.9.4 (CWE-306, CVSS 9.8 AV:N/AC:L/PR:N/UI:N). The careers job-application endpoint accepts resume uploads without enforcing authentication or robust file-type validation, allowing a PHP payload to be written to a web-reachable upload directory and executed via a subsequent HTTP POST, yielding command execution in the web server context.

Likely exposure

Affects OpenCATS 0.9.4 careers/job application endpoints that accept resume uploads. Highest exposure is internet-facing recruiting portals that allow public submissions without authentication. Internal-only deployments behind SSO or VPN have reduced but non-zero exposure.

Exploitation context

Public exploit code is available on ExploitDB (50585) and a VulnCheck advisory documents the technique. The CVE is not listed in CISA KEV, and no confirmed active exploitation is cited in the bundle. The low complexity and public PoC raise opportunistic-scanning risk for exposed instances.

Researcher notes

Root cause is missing authentication on a sensitive upload endpoint (CWE-306) combined with insufficient file-type validation, allowing PHP payloads in the resume upload flow to be reached and executed from the web-accessible upload directory. ExploitDB 50585 documents the chain. Validate via authenticated file-system inspection of the upload directory for unexpected .php/.phtml/.phar artifacts and web-server logs for POSTs to those files. Avoid running public PoCs against production.

Mitigation direction

  • Inventory OpenCATS deployments and confirm whether the careers upload endpoint is reachable from the internet.
  • Remove public access to upload paths or front the application with a WAF that blocks PHP file content and double-extensions.
  • Restrict execution permissions on the upload directory so uploaded files cannot run as PHP.
  • Check the OpenCATS GitHub repository and vendor site for an official patch or hardened release.
  • If no fix is available, take the careers submission flow offline until vendor guidance is confirmed.

Validation and detection

  • Confirm OpenCATS version; 0.9.4 is the named vulnerable build per the advisory.
  • Review web-server access logs for POSTs to files inside the resume upload directory, especially with .php-family extensions.
  • Audit the upload directory for files whose extension or MIME type does not match a legitimate resume.
  • Run an authenticated configuration check to confirm the upload path does not allow script execution.
  • Coordinate any active testing with the application owner; do not run public PoC code against production.
Prepared
Confidence
medium
Sources
6

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-306: Credential and account abuse lookup

Authentication and credential weaknesses can make valid-account abuse and credential telemetry useful review starting points. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Execution behavior lookup

The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2021-47936 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.8 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

2CVSS vectors
3Timeline events
1ADP providers
5Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total

CVSS vector scores

2 official scores

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.8CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H3.95.9VulnCheck
9.3CVSS 4.0CriticalCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NVulnCheck

Vulnerability scoring details

Base CVSS 4.0 score

9.3Critical
CVSS 4.0 vector shape for CVE-2021-47936Attack VectorAttack ComplexityAttack RequirementsPrivileges RequiredUser InteractionVS ConfidentialityVS IntegrityVS AvailabilitySS ConfidentialitySS IntegritySS Availability

Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Attack Requirements
NonePresent
Privileges Required
NoneLowHigh
User Interaction
NonePassiveActive
VS Confidentiality
HighLowNone
VS Integrity
HighLowNone
VS Availability
HighLowNone
SS Confidentiality
HighLowNone
SS Integrity
HighLowNone
SS Availability
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc

Source materials

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
OpencatsOpenCATS0Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-306 · source CWE mapping

Missing Authentication for Critical Function

Missing Authentication for Critical Function represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.