dingtalk-attendance

Warn

Audited by Gen Agent Trust Hub on Jul 20, 2026

Risk Level: MEDIUMCOMMAND_EXECUTIONREMOTE_CODE_EXECUTIONEXTERNAL_DOWNLOADS
Full Analysis
  • [COMMAND_EXECUTION]: Multiple scripts, including attendance_my_record.py and attendance_team_shift.py, use subprocess.run to execute the dws CLI tool. These calls are implemented using list-based arguments which mitigates shell injection risks. Date parameters are validated using regular expressions before being passed to the command line.
  • [REMOTE_CODE_EXECUTION]: The module attendance_report_common.py contains a function that attempts to dynamically install the Pillow library from PyPI using subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'Pillow']) if the dependency is not found at runtime. This represents dynamic code loading and execution.
  • [EXTERNAL_DOWNLOADS]: The attendance_report_common.py script uses the requests library to fetch images from URLs (e.g., photoUrl, remarkPhoto) found within DingTalk attendance records. These images are processed and embedded into Excel reports. This creates an indirect ingestion surface where malicious data in the source system could trigger network requests.
  • [DATA_EXFILTRATION]: The skill is designed to export sensitive organizational data (attendance logs, user IDs, location data, and photos) into local Excel files. While this is the primary functionality of the skill, the attendance_report_record.py script specifically constructs dingtalk:// deep links containing internal identifiers like corp_id and process_instance_id.
  • [PROMPT_INJECTION]: The skill processes untrusted data from DingTalk API outputs without explicit sanitization or boundary markers. Specifically, in attendance_report_common.py, URLs retrieved from API responses are directly passed to requests.get, posing a risk of tool output poisoning if the source data is compromised.
Audit Metadata
Risk Level
MEDIUM
Analyzed
Jul 20, 2026, 11:21 AM
Security Audit — agent-trust-hub — dingtalk-attendance