FIND SAP API

ReviewAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches its SAP API downloader purpose, but it needs review because helper scripts can use arbitrary environment variables as login credentials and write or generate files without tight path/input containment.

Install only if you are comfortable providing SAP Hub credentials in the runtime environment. Run the commands yourself, avoid pointing credential options at non-SAP secrets, use trusted API ID lists and OpenAPI specs, and review generated or imported file paths before allowing writes to your project.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If an agent or prompt uses these options incorrectly, a non-SAP secret from the local environment could be entered into the SAP login page.

Why it was flagged

The stated credential contract is SAP_HUB_USERNAME and SAP_HUB_PASSWORD, but the script can read any environment variable names supplied on the command line and use those values for browser login.

Skill content
ap.add_argument("--username-env", default="SAP_HUB_USERNAME")
ap.add_argument("--password-env", default="SAP_HUB_PASSWORD")
...
os.environ.get(username_env, "").strip(),
os.environ.get(password_env, "").strip()
Recommendation

Restrict credential reads to the documented SAP_HUB_USERNAME and SAP_HUB_PASSWORD variables, or require explicit user approval and an allowlist before reading alternative environment variables.

What this means

A malformed API ID could cause writes outside the intended download folder if it produces a valid response, creating or overwriting files in unexpected locations.

Why it was flagged

The output filename is built directly from the user-provided API ID. The visible code does not sanitize path separators or resolve and verify that the final path stays under the requested output directory.

Skill content
out_file = out_dir / f"{api_id}_{suffix}"
...
out_file.write_text(body, encoding="utf-8")
Recommendation

Validate API IDs against a safe character pattern, sanitize filenames, and resolve the final path to ensure it remains inside the output directory before writing.

What this means

A bad or manipulated category value could place imported files outside the intended project category tree.

Why it was flagged

The category name is used directly as a path below APIConnectionToSAP. The code does not reject '../' or absolute-path style input before creating directories and copying or moving files.

Skill content
parser.add_argument("--category", required=True, help="Category folder name under APIConnectionToSAP...")
...
category_dir = api_root / category
connection_dir.mkdir(parents=True, exist_ok=True)
Recommendation

Normalize and validate category names, reject path traversal components, and verify the resolved target directory is inside APIConnectionToSAP.

What this means

If scaffolding is run on an untrusted OpenAPI file and the generated module is later imported or executed, injected code could run in the user's project.

Why it was flagged

OpenAPI summary/description text is inserted directly into generated Python docstrings. A malicious or untrusted spec could include characters that break out of the docstring and alter generated code.

Skill content
summary = str(op_obj.get("summary") or op_obj.get("description") or f"{method.upper()} {path}")
...
f'''    """{op.summary}"""\n'''
Recommendation

Escape or safely serialize all spec-derived strings in generated Python, and advise users to review generated code before running or importing it.

What this means

Future dependency versions could behave differently from the reviewed version.

Why it was flagged

The package uses minimum-version dependency ranges rather than pinned versions or a lockfile. This is common for instruction-based Python skills, but it leaves installed versions dependent on the current package index state.

Skill content
playwright>=1.40.0
PyYAML>=6.0
Recommendation

Prefer pinned versions or a lockfile for reproducible installs, especially because the skill handles credentials and browser automation.