Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

JumpServer Skills

v1.1.0

JumpServer V4.10 查询与分析 skill。Use when users ask to query assets/accounts/users/organizations/permissions, inspect access or governance, audit logins/sessions...

0· 147·0 current·0 all-time
by老广@ibuler

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for ibuler/jumpserver.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "JumpServer Skills" (ibuler/jumpserver) from ClawHub.
Skill page: https://clawhub.ai/ibuler/jumpserver
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install jumpserver

ClawHub CLI

Package manager switcher

npx clawhub@latest install jumpserver
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
Name/description say this is a read-only JumpServer query/analysis skill — that matches the scripts present (jms_query.py, jms_diagnose.py, jms_report.py) which call the JumpServer API. However the registry metadata claims 'Required env vars: none' and 'Primary credential: none', while the code and README clearly expect JMS_API_URL plus either JMS_ACCESS_KEY_ID/JMS_ACCESS_KEY_SECRET or JMS_USERNAME/JMS_PASSWORD (and optional JMS_ORG_ID/JMS_VERIFY_TLS). This mismatch is an incoherence between the declared purpose/requirements and what the skill actually needs.
Instruction Scope
SKILL.md prescribes running the bundled Python entrypoints and explicitly allows the runtime to write local configuration (config-write --confirm and select-org --confirm) while forbidding business write operations. That instruction set is mostly scoped to JumpServer queries and report generation. It does, however, allow creating/overwriting a local .env and persisting selected org context — side effects on the host filesystem that are outside purely read-only API calls and should be noted. The instructions direct API calls only to the JumpServer base URL (via the client), not to unexpected external endpoints.
!
Install Mechanism
There is no explicit install spec, but scripts/jumpserver_api/jms_bootstrap.py contains logic to detect missing Python packages and runs pip install -r requirements.txt automatically at runtime (subprocess.run). That will perform network installs from PyPI when run, which is a non-trivial install action even though no explicit install spec was published. requirements.txt itself is small (requests, tzdata, backports.zoneinfo), but automatic runtime installation is an implicit install mechanism users should be aware of.
!
Credentials
The skill requires sensitive JumpServer credentials and a base URL to function (access key/secret or username/password), and will load and can write those values into a local .env. The registry metadata failing to declare these env vars is a mismatch. Also JMS_VERIFY_TLS defaults to false per docs, which weakens TLS verification unless the user overrides it. Requesting these credentials is proportionate for a JumpServer client, but the mismatch in declared vs actual required env vars and default-to-insecure TLS are concerning and must be addressed by the user.
Persistence & Privilege
The skill persists local configuration (.env) and can persist a selected organization (select-org --confirm). always is false, and the skill does not request system-wide privileges. Persisting .env and org selection is documented as allowed behavior. Users should expect persistent local configuration files as a consequence of using the skill.
What to consider before installing
This skill contains a full Python client and multiple entrypoint scripts and appears to be a legitimate JumpServer query/reporting tool, but the package metadata is inconsistent with the code: the skill will need your JumpServer URL and credentials (AK/SK or username/password) and can create/overwrite a local .env file and persist organization context. It also may automatically pip-install required Python packages at runtime. Before installing or running it: (1) do not provide high-privilege or long-lived credentials — prefer scoped/test credentials; (2) inspect write operations (the write_local_env_config/select-org paths) and run the skill in an isolated environment or container; (3) if you require strict TLS, set JMS_VERIFY_TLS=true (the default docs say false); (4) prefer manually installing dependencies rather than allowing automatic pip installs, or review jms_bootstrap.py to understand its behavior; and (5) ask the publisher to update the registry metadata to declare the required env vars and primary credential so the package declaration matches the actual runtime requirements. If the metadata is corrected and you run in an isolated environment with limited credentials, the skill's behavior would be coherent with its stated purpose.

Like a lobster shell, security has layers — review code before you run it.

latestvk9701zb07pg0rfqa625t76tmw183w4ec
147downloads
0stars
3versions
Updated 4w ago
v1.1.0
MIT-0

JumpServer Skills

只使用正式 CLI 入口:

  • python3 scripts/jumpserver_api/jms_query.py ...
  • python3 scripts/jumpserver_api/jms_diagnose.py ...
  • python3 scripts/jumpserver_api/jms_report.py ...

这是查询与分析 skill。允许本地运行时写入 config-write --confirmselect-org --confirm。不执行 JumpServer 业务写操作。

Route First

按下面顺序判路由。上面的规则优先于下面的规则。

  1. 如果用户请求的核心对象是某一天或某一段时间内的 JumpServer 使用数据分析,优先命中 HTML 模板工作流。这包括:使用报告、日报、使用情况、使用分析、审计分析、某天发生了什么、分析 20260310、看下 / 看看 3 月 10 号 使用情况、帮我看 / 帮我看看某天登录/会话/命令/传输情况、想看上周谁登录最多、过一下 3 月上旬 哪些资产最活跃,以及类似的“时间范围内使用情况 / 概览 / 汇总 / 排行 / TOP”表达。 动作:优先使用 python3 scripts/jumpserver_api/jms_report.py daily-usage ...,并由它加载 template/bastion-daily-usage-template.htmlreferences/metadata/daily_usage_report_template_fields.json;先把“昨天 / 20260310 / 3月10号 / 上周 / 本月”等时间表达归一化为明确时间窗,再生成并验证完整 HTML 报告;模板细节见 references/report-template-playbook.md

  2. 如果用户要配置 JumpServer、检查依赖、检查配置、检查连通性、切换组织、查看许可证、系统设置、报表、工单、存储、终端或做对象解析,先走 jms_diagnose.py。 动作:先预检,再用 config-status / ping / select-org / inspect / resolve

  3. 如果用户要看授权规则、ACL、RBAC、为什么某人能访问某资产、某条权限详情,走 jms_query.py。 动作:优先 permission-list / permission-get / asset-perm-users;必要时先用 jms_diagnose.py 做访问分析。

  4. 如果用户要查登录、会话、终端会话、命令记录、文件传输、异常行为、高危命令、失败登录、特权账号使用审计,走 jms_query.py。 动作:优先 audit-analyze --capability ...,需要明细时再用 audit-list / audit-get / terminal-sessions

  5. 如果用户要查资产、节点、平台、账号、账号模板、用户、用户组、组织、标签、网域等对象,走 jms_query.py。 动作:只做 object-list / object-get;名称不唯一时先解析,不要猜。

  6. 如果用户要做治理巡检、聚合分析、账号治理、资产治理、访问分析、系统巡检或 capability 型统计,走 jms_diagnose.py inspect --capability ...。 动作:优先 capability,不手工拼多条零散查询。

普通路由细节、更多命中说法和反例见 references/routing-playbook.md

Template Overrides

按下面顺序处理模板例外。上面的规则优先于下面的规则。

  1. 如果用户明确说“不要生成报告,直接分析”“先简单说下”“只给我结论”“不用模板”,才允许跳过模板,直接给简短分析。
  2. 除上述明确例外外,只要是某一天或某一段时间的 JumpServer 使用情况 / 使用分析 / 审计分析,或者表达为某时间段的登录 / 会话 / 命令 / 传输情况、排行、TOP、谁最多,就必须先走模板工作流。
  3. “分析”不等于自由文本优先。带时间范围的使用分析、情况概览或排行类问题,默认先产出完整 HTML 报告;摘要只能作为补充,不能替代报告。

Organization Priority

按下面顺序处理组织。上面的规则优先于下面的规则。

  1. 用户显式给组织:按用户指定组织执行。
  2. 报告或使用分析模板请求且用户未指定组织,或明确指定“所有组织”“全局组织”:默认执行 python3 scripts/jumpserver_api/jms_diagnose.py select-org --org-id 00000000-0000-0000-0000-000000000000 --confirm
  3. 全局组织 00000000-0000-0000-0000-000000000000 的可访问性不只看候选组织列表;允许通过显式 select-org / 直连探测确认。
  4. 如果全局组织 00000000-0000-0000-0000-000000000000 的直连探测或显式选择验证失败:直接阻塞并返回 candidate_orgs;不要回退到 {0002} / {0002,0004} 自动规则。
  5. 非报告类请求且未指定组织:沿用保留组织逻辑。只有可访问组织集合恰好是 {0002}{0002,0004} 时,才自动写入 0002
  6. 当前 JMS_ORG_ID 已不可访问:先重新 select-org,不要继续业务命令。
  7. 查询类请求在未确定组织且存在多个可访问组织时:先返回 candidate_orgs 并要求用户选择查询组织。
  8. 查询类请求在当前组织已生效且仍有其他可切换组织时:继续返回 switchable_orgs,提示用户还可以切换到哪些组织查询。

Standard Flow

收到请求先做:

自动检查依赖 -> config-status --json -> 必要时 config-write --confirm -> ping -> 按路由和组织优先级选择正式入口

执行规则:

  • 配置或环境不确定时,先执行 python3 scripts/jumpserver_api/jms_diagnose.py config-status --json
  • complete=false 时,先补齐配置,再继续。
  • 名称不唯一、平台不明确、对象跨组织时,先解析或阻塞,不要猜。
  • 审计类问题没有 date_from/date_to 时,默认最近 7 天;想查更大范围时优先要求明确时间窗。
  • 模板化使用报告/使用分析请求必须先走 python3 scripts/jumpserver_api/jms_report.py daily-usage ...;它会负责时间归一化、组织处理、字段元数据取数、模板填充和生成后自检。普通查询优先只选 1 个正式入口。

Guardrails

  • 不生成临时 SDK Python 脚本或 HTTP 脚本。
  • 不猜对象 ID、平台 ID、组织、鉴权信息或筛选条件。
  • 不创建、更新、删除、解锁对象,也不追加或移除权限关系。
  • 权限问题只做读取和解释,不做权限写入。
  • 模板化报告请求必须优先使用 python3 scripts/jumpserver_api/jms_report.py daily-usage ...;不要现场写临时拼装逻辑。若正式入口缺失,应先补齐正式入口,再使用它。
  • 模板化报告请求只使用字段元数据里声明的来源,不用 Markdown 模板替代 HTML 模板。
  • 模板化报告请求中的命令审计字段,未显式给 command_storage_id 时默认汇总全部可访问 command storage;普通命令审计查询仍沿用默认 storage / 单个 storage / 多 storage 阻塞逻辑。

Respond With

成功时至少回显:

  • 已走预检
  • 选中的正式入口或模板路径
  • effective_org
  • switchable_orgs(当当前组织已生效且仍有其他可切换组织时)
  • 执行命令摘要
  • 普通查询:结果摘要
  • 模板报告:完整 HTML 报告,且已经通过生成后自检

模板报告成功时还至少回显:

  • 正式入口:python3 scripts/jumpserver_api/jms_report.py daily-usage ...
  • 报告文件路径
  • 模板路径:template/bastion-daily-usage-template.html
  • 字段元数据路径:references/metadata/daily_usage_report_template_fields.json
  • queried_command_storage_ids
  • queried_command_storage_count
  • report_date
  • date_from
  • date_to
  • validation_summary
  • 可附加简短摘要,但不得仅返回摘要替代报告

阻塞时至少回显:

  • 已走预检
  • effective_org
  • 阻塞原因
  • candidate_orgscandidate_objects
  • 下一步安全动作

References

Comments

Loading comments...