Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated network POST to /import (AV:N/AC:L/PR:N/UI:N) yields full RCE as the service account, so C:H/I:H/A:H; scope unchanged as execution stays within the host's privilege context.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
Lifecycle Timeline
3DescriptionCVE.org
An OS command injection vulnerability in alseambusher/crontab-ui through 0.4.2 allows an unauthenticated remote attacker to execute arbitrary system commands by importing a crafted crontab database file. The POST /import endpoint accepts arbitrary .db files and overwrites the application database without validation. The hook field value is embedded directly into a shell command by crontab.js makeCommand() without sanitization, so a malicious hook value in the imported file results in command execution on the next cron execution cycle.
AnalysisAI
OS command injection in alseambusher/crontab-ui through 0.4.2 lets a remote, unauthenticated attacker POST a crafted crontab database to the /import endpoint, which silently overwrites the application's job database; a malicious 'hook' value is then concatenated into a shell command by makeCommand() and runs on the next cron cycle. There is no public exploit identified at time of analysis, but the CVSS 3.1 base score of 9.8 (AV:N/AC:L/PR:N/UI:N) reflects trivial, pre-authentication reachability with full confidentiality, integrity, and availability impact on the host. Any internet- or LAN-exposed crontab-ui instance without an external access-control layer should be treated as high priority.
Technical ContextAI
crontab-ui is a Node.js/Express web application that provides a browser front end for creating, editing, and scheduling Unix cron jobs, storing job definitions in an NeDB-style .db file. The vulnerability is CWE-78 (Improper Neutralization of Special Elements used in an OS Command): the crontab.js makeCommand() routine builds the shell string that cron will execute and interpolates the user-controllable 'hook' field directly, with no escaping or allow-listing, so shell metacharacters in that field break out of the intended command. The exposure is amplified by the POST /import handler, which accepts an arbitrary uploaded .db file and replaces the live database wholesale without authentication or content validation, giving the attacker full control over every job record including the hook field. Per the CPE cpe:2.3:a:alseambusher:crontab-ui:*, all versions up to and including 0.4.2 are in scope.
RemediationAI
No vendor-released patch identified at time of analysis, and the supplied references point only to the project repository and source file rather than a tagged fixed release, so no exact fix version can be cited. Until a patched release is confirmed, the highest-value compensating control is to remove unauthenticated network exposure of the /import endpoint: place crontab-ui behind an authenticating reverse proxy or VPN and restrict access to trusted admin networks (trade-off: adds an access-control dependency and may break existing automation that calls the UI). Specifically block or deny external POST requests to the /import path at the proxy, since import is rarely needed in normal operation (trade-off: legitimate database restores must then be performed locally). Bind the service to localhost or a management interface rather than 0.0.0.0, and run it under a low-privilege, non-root account so that a successful hook injection cannot execute as root (trade-off: cron jobs needing elevated rights must be re-architected). Monitor for unexpected changes to the crontab .db file and for new or modified hook values. Track the upstream repository (https://github.com/alseambusher/crontab-ui) for an official fix and upgrade as soon as a patched version is published.
More in Crontab Ui
View allSame weakness CWE-78 – OS Command Injection
View allSame technique Command Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-55217
GHSA-r4j6-x8h7-4f8w