Most static alerts are false positives caused by Markdown formatting, local validation, and scoped configuration reads. Confirmed risks include shell-profile credential storage, optional unencrypted SMTP authentication, environment access to the SMTP password, and intended outbound SMTP connections.
When both TLS options are disabled, the plain SMTP path still calls login. Network observers could capture SMTP credentials and notification content.
The plain SMTP client is created on line 194, while STARTTLS is conditional and login remains available. The control flow directly confirms the exposure condition.
Capability review items (9)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
This transmits the configured SMTP username and password to the server. The credentials can cross an unencrypted connection when both transport-security options are disabled.
Add the following lines to `~/.bashrc` (Linux) or `~/.zshrc` (macOS):
The setup directs users to persist the SMTP password in a shell startup file. This exposes the credential to every child process and leaves it in a long-lived plaintext file.
This reads a password from the process environment. The access is expected for SMTP authentication, but it gives the skill direct access to a credential.
The skill intentionally sends SMTP email through user-configured settings and reads SMTP credentials from environment variables. I confirmed the outbound email capability and shell-profile credential guidance, and dismissed markdown backtick and system reconnaissance matches as false positives.
The setup guide recommends exporting SMTP settings, including CODEX_EMAIL_PASSWORD, from shell startup files. This can persist an email password in plaintext and expose it to future shell sessions.
SKILL.md directs users to edit ~/.bashrc or ~/.zshrc and includes CODEX_EMAIL_PASSWORD in the exported variables. That is clear evidence of plaintext credential storage guidance.
Capability review items (41)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
Add the following lines to `~/.bashrc` (Linux) or `~/.zshrc` (macOS):
The setup instructions direct users to put exported SMTP settings, including an email password, in shell startup files. This can persist sensitive credentials in plaintext in hidden home-directory files.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
description="Send an SMTP email notification for a Codex task."
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
sys.stderr.write("CODEX_EMAIL_SMTP_PORT must be an integer.\n")
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
The helper implements outbound SMTP email and can send task metadata and summaries to configured recipients. This is intended behavior, but it is a real network data-transfer capability.
description: Send SMTP email notifications after Codex completes a task. Use when one Codex or Claud
The documentation instructs users to configure SMTP email delivery for task notifications. This confirms the skill has intentional outbound email behavior.
Send an email notification after each Codex task. Use the helper script to resolve the project name
The documentation instructs users to configure SMTP email delivery for task notifications. This confirms the skill has intentional outbound email behavior.
The documentation instructs users to configure SMTP email delivery for task notifications. This confirms the skill has intentional outbound email behavior.
The documentation instructs users to configure SMTP email delivery for task notifications. This confirms the skill has intentional outbound email behavior.
If your SMTP server does not require auth, leave `CODEX_EMAIL_USERNAME` and `CODEX_EMAIL_PASSWORD` u
The documentation instructs users to configure SMTP email delivery for task notifications. This confirms the skill has intentional outbound email behavior.
Set `CODEX_EMAIL_USE_SSL` to `true` for SMTPS (typically port 465) and `CODEX_EMAIL_USE_TLS` to `tru
The documentation instructs users to configure SMTP email delivery for task notifications. This confirms the skill has intentional outbound email behavior.
Add the following lines to `~/.bashrc` (Linux) or `~/.zshrc` (macOS):
The setup instructions direct users to put exported SMTP settings, including an email password, in shell startup files. This can persist sensitive credentials in plaintext in hidden home-directory files.
The script reads SMTP account credentials from environment variables. This is expected for SMTP login, but access to credential material is security-sensitive.
The script reads SMTP account credentials from environment variables. This is expected for SMTP login, but access to credential material is security-sensitive.
The skill legitimately sends SMTP messages and reads environment variables for SMTP configuration, including credentials. Most SKILL.md shell/backtick detections are Markdown or setup examples, but storing SMTP credentials in shell startup files is a real concern. No prompt injection text or unauthorized exfiltration intent was found beyond the configured email notification behavior.
Add the following lines to `~/.bashrc` (Linux) or `~/.zshrc` (macOS):
The setup instructions direct users to place notification settings in shell startup dotfiles. This can persist plaintext SMTP credentials in hidden home-directory files.
Add the following lines to `~/.bashrc` (Linux) or `~/.zshrc` (macOS):
The setup instructions direct users to place notification settings in shell startup dotfiles. This can persist plaintext SMTP credentials in hidden home-directory files.
The workflow includes a shell command that runs the Python notification helper. The command is expected, but it executes local code and passes user-controlled task text as arguments.
description: Send SMTP email notifications after Codex completes a task. Use when one Codex or Claud
The documentation instructs users to configure SMTP delivery settings. This confirms expected email-sending behavior and a real external data transmission path.
Send an email notification after each Codex task. Use the helper script to resolve the project name
The documentation instructs users to configure SMTP delivery settings. This confirms expected email-sending behavior and a real external data transmission path.
The documentation instructs users to configure SMTP delivery settings. This confirms expected email-sending behavior and a real external data transmission path.
The documentation instructs users to configure SMTP delivery settings. This confirms expected email-sending behavior and a real external data transmission path.
If your SMTP server does not require auth, leave `CODEX_EMAIL_USERNAME` and `CODEX_EMAIL_PASSWORD` u
The documentation instructs users to configure SMTP delivery settings. This confirms expected email-sending behavior and a real external data transmission path.
Set `CODEX_EMAIL_USE_SSL` to `true` for SMTPS (typically port 465) and `CODEX_EMAIL_USE_TLS` to `tru
The documentation instructs users to configure SMTP delivery settings. This confirms expected email-sending behavior and a real external data transmission path.
The script reads named CODEX email and machine settings from the environment. This is legitimate configuration access, but it can include sensitive SMTP details.
The script reads named CODEX email and machine settings from the environment. This is legitimate configuration access, but it can include sensitive SMTP details.
The script reads named CODEX email and machine settings from the environment. This is legitimate configuration access, but it can include sensitive SMTP details.
The script reads named CODEX email and machine settings from the environment. This is legitimate configuration access, but it can include sensitive SMTP details.
The script reads CODEX_EMAIL_PASSWORD from the environment for SMTP login. This is expected, but it gives the skill process access to an email credential.
The script reads named CODEX email and machine settings from the environment. This is legitimate configuration access, but it can include sensitive SMTP details.
The script reads named CODEX email and machine settings from the environment. This is legitimate configuration access, but it can include sensitive SMTP details.
Static findings for network, environment access, filesystem references, and documented commands are mostly expected for an SMTP notification skill. No prompt injection or malicious intent was found, but the skill can email task summaries and uses SMTP credentials from environment variables, so users need a clear data disclosure warning.
The helper sends email through smtplib and includes the task title, status, project, device name, and summary. This is the intended feature, but it can disclose sensitive task details if the summary contains secrets or private project information.
The script directly constructs an email body from task metadata and sends it through SMTP. This confirms network transmission, while the purpose appears legitimate and user configured.
SMTP Credentials Are Read From Environment Variables
The script reads SMTP host, username, password, sender, recipients, and TLS settings from environment variables. This is normal for SMTP configuration, but credentials can be exposed if shell profiles or logs are mishandled.
The code clearly reads CODEX_EMAIL_PASSWORD and uses it for SMTP login. The behavior is required for authenticated SMTP, but it handles sensitive credentials.
Plaintext Email Password Configuration Is Recommended
The instructions tell users to place CODEX_EMAIL_PASSWORD in shell startup files. This is easy to use but increases exposure to local users, backups, terminal history, and accidental sharing.
The documentation explicitly recommends persistent environment variables in home shell configuration files. The risk is credential exposure, not malicious behavior.
The script searches upward for AGENTS.md and reads it to extract a project name. This is filesystem access, but it is limited to project metadata and no file contents are emailed except the extracted name.
The filesystem access is explicit and narrow. It could reveal a project name in email, but I did not find evidence of broader file exfiltration.
Needs review findings (1)
These findings came from uncertain legacy audit verdicts, so they require review but are not counted as confirmed security issues.
Hidden Home Path References Are Installation Documentation
The skill mentions shell startup files and a ~/.codex skill path. These references are expected for local configuration, but users should protect files containing credentials.
The references are documentation rather than hidden-file reads by code. They still matter because the documented files may store SMTP credentials.
Static false positives ignored (3)
These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.
The command in SKILL.md is a user-facing example for running the helper script. I did not find code that builds or executes shell commands dynamically.
The flagged content is a Markdown command example, not executable code inside the skill. The Python script uses argparse and smtplib, not subprocess or shell evaluation.
Weak Cryptography Finding Is Not Supported By Evidence
The weak cryptography static finding appears to be triggered by SMTP text, not by a weak hash, cipher, or custom cryptographic implementation. The script uses standard SMTP, SMTP_SSL, and STARTTLS controls.
No weak algorithm or cryptographic primitive is present at the flagged locations. The remaining concern is configuration quality, especially if users disable TLS and SSL.
System Reconnaissance Finding Is Not Supported By Evidence
The flagged lines validate boolean environment values and tell users to avoid secrets in summaries. I did not find host probing, process listing, network scanning, or system inventory collection.
The code only parses configured environment flags and formats user-provided task metadata. No reconnaissance behavior is visible in the reviewed files.
This skill is a straightforward SMTP email notification utility. It reads environment variables for SMTP configuration, reads AGENTS.md for optional project name extraction, and sends task completion notifications via standard Python smtplib. All detected patterns are expected functionality - email sending is the stated purpose, environment access is for configuration, and filesystem reads are for project name resolution. No malicious behavior confirmed.
This skill is a straightforward SMTP email notification utility. It reads environment variables for SMTP configuration, reads AGENTS.md for optional project name extraction, and sends task completion notifications via standard Python smtplib. All detected patterns are expected functionality - email sending is the stated purpose, environment access is for configuration, and filesystem reads are for project name resolution. No malicious behavior confirmed.
This skill is a straightforward SMTP email notification script. It reads environment variables and AGENTS.md for configuration, then sends task completion notifications via SMTP. No malicious behavior detected. The code matches its stated purpose of sending email notifications.
This skill is a straightforward SMTP email notification script. It reads environment variables and AGENTS.md for configuration, then sends task completion notifications via SMTP. No malicious behavior detected. The code matches its stated purpose of sending email notifications.
This skill is a straightforward SMTP email notification script. It reads environment variables and AGENTS.md for configuration, then sends task completion notifications via SMTP. No malicious behavior detected. The code matches its stated purpose of sending email notifications.