T09 · Insecure Skill Coding Practices
- Location
main.py:244- Finding
Unverified fixed-coordinate automation can capture or interact with unintended applications
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill controls the live desktop to send job-platform messages and includes weak safeguards plus guidance to exaggerate qualifications.
Review carefully before installing. In its current form, run it only in an isolated environment and only after changing it to draft messages, remove qualification-exaggeration guidance, require explicit approval before every send, verify the active Boss Zhipin page and recipient, add limits, and define screenshot retention.
main.py:244Unverified fixed-coordinate automation can capture or interact with unintended applications
requirements.txt:4Unpinned and unnecessary dependencies create avoidable supply-chain exposure
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
*.so
# User-specific
.env
.pytest_cache/
.hypothesis/
.vscode/
The document states that generated outreach should 'appropriately exaggerate' technical qualifications and imitate human language habits, which directly promotes deceptive self-presentation. In a job application automation context, this is dangerous because it facilitates fraud, misrepresentation, and trust manipulation at scale.
The messaging guidance explicitly tells users to exaggerate qualifications and imitate natural human language, which is direct support for deceptive impersonation in outbound communication. This is especially dangerous in a recruiting context because it facilitates fraud, misrepresentation, and trust manipulation toward real human recipients.
Automated message sending to employers occurs with no confirmation, preview, rate limit, or safety interlock. In this skill’s context, that directly enables unsolicited bulk outreach and accidental messaging, which can violate platform rules, damage accounts, and contact real third parties without operator intent at the moment of send.
The file describes screenshot capture and OCR processing of on-screen job content without warning that visible data may include sensitive or personal information. Because screen capture tools can inadvertently collect unrelated on-screen content, the omission increases privacy and data-handling risk for users and third parties.
The combined workflow links qualification exaggeration, human-like phrasing, strong expression of interest, and automated send actions into a scalable deceptive outreach pipeline. This increases risk beyond isolated wording issues because it operationalizes trust-building deception and mass unsolicited messaging in a recruiting context.
The document explicitly describes automated clicking, pasting, and sending of messages on the user's behalf, but provides no warning, confirmation requirement, or consent boundary. In the context of a job-platform automation skill, this creates a real risk of unauthorized outreach, spam, and unintended account actions if the automation runs without clear user review.
The README describes automation that clicks, scrolls, captures screenshots, and sends messages, but it does not clearly warn that these actions will control the user's GUI and can affect whatever application is in focus. That omission increases the chance of accidental interaction with the wrong window, unintended data capture, or misdirected actions on the local system.
The generation rules instruct the skill to imitate natural human language habits using fluent Chinese expression. This is a locale/language constraint presented as mandatory behavior, and the README does not indicate that users can choose another language or opt into Chinese-only operation.
The skill automates clicking, browsing, and message sending on a third-party job platform, but the description does not warn users that it can take real actions through their account. That omission increases the risk of unintended outreach, account misuse, and violation of platform rules because operators may not realize the automation has externally visible effects.
The skill captures screenshots of job pages and runs OCR over their contents without any privacy notice, data-handling guidance, or retention limits. This can expose job-posting data, recruiter information, and potentially sensitive page content to local storage or downstream processing without informed user consent.
The documented workflow systematically screens targets, generates tailored persuasive content, and automatically initiates contact on a third-party platform. In context, this is more dangerous because it operationalizes scaled outbound manipulation and spam-like behavior, reducing human review before messages are sent and enabling misuse for deceptive mass outreach.
The module docstring describes scrolling, clicking, screenshots, and navigation, but omits the script’s ability to paste and send messages automatically. This understates the automation’s real capability, which can mislead downstream users or orchestrators into invoking a tool that can perform outbound communications without clear disclosure.
The paste_and_send function performs clipboard paste and immediately sends the message with Enter, without any confirmation, preview, recipient verification, or rate limiting. In a GUI automation context, focus mistakes or malicious orchestration could cause unintended messages to be sent to the wrong party, potentially leaking sensitive clipboard contents or enabling spam/phishing at scale.
The file content is a fixed Chinese message and provides no indication that another language can be selected. Under the policy criteria, forcing a specific language without user opt-in is a natural-language policy violation.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
log_step(f"执行 OCR: {image_path}")
try:
result = subprocess.run(
['node', str(ocr_script), '--image', image_path],
capture_output=True,
text=True,
The description says the skill automates job browsing, OCR analysis, and communication, but it does not define clear activation boundaries, consent requirements, or limits on when automated messaging should occur. In a skill that can read on-screen job content and initiate chats, vague scope increases the chance of unintended outreach, over-broad data collection, or misuse beyond the user's explicit intent.
The manifest uses a Chinese-only job platform description and fixes OCR processing to simplified Chinese plus English, with no indication that users can choose another language or locale. This creates a natural-language locale constraint that is not presented as optional or explicitly justified as a region-specific tool.
The file's natural-language interface and operational messaging are entirely in Chinese, including the skill description and runtime logs, with no indication that users can select another language. This can violate language/locale policy when a skill imposes a specific language without user opt-in.
The function description suggests a simple single-job processing flow, but the implementation automatically initiates employer contact and sends a message without any manual review step. In an automation skill that interacts with third-party users, this can cause unintended outreach, spam, reputational damage, or policy violations if triggered with the wrong template or context.
The README describes automation that clicks, scrolls, captures screenshots, and sends messages, but it does not clearly warn that these actions will control the user's GUI and can affect whatever application is in focus. That omission increases the chance of accidental interaction with the wrong window, unintended data capture, or misdirected actions on the local system.
The skill explicitly directs generated messaging to use natural Chinese expression and the example output is only in Chinese, with no opt-in or language selection. This is a natural-language locale constraint that can violate policy when a specific language is forced without user choice or a documented justification.
This code file contains user-facing natural-language strings exclusively in Chinese, including the module docstring, CLI description, help text, and examples. Under the stated policy, forcing a specific language without offering a language choice or documenting a justified locale constraint is a natural-language policy violation.
capture_screenshot is documented as taking a screenshot and returning its path, but before capturing it also calls Path(path).parent.mkdir(...), which modifies the filesystem. This is a real side effect not reflected in the function documentation, creating a small intent/documentation mismatch.
The natural-language comment "Boss 直聘职位沟通自动化依赖" presents the skill context entirely in Chinese and targets a Chinese hiring platform, but the file does not indicate that the language/locale is optional or region-specific by design. Under the policy, forcing a specific language or locale without opt-in can be a natural-language policy concern.