{"data":{"skill":{"slug":"nomadamas-kakaotalk-mac","name":"kakaotalk-mac","icon":"📦","repo":"https://github.com/nomadamas/k-skill/tree/9766d20fb1fe1a5eb1d10ef5ff9872c8d6fc4985/kakaotalk-mac","status":"approved","author":"nomadamas","authorVersion":null,"skillstoreRevision":1,"license":"MIT"},"licenseCorrection":null,"audit":{"id":"b0c0f630-a1eb-4153-a2e2-e240d83a3004","skill_id":"5f629317-79f8-424b-a196-ad16d15360e3","version":1,"content_hash":"v3:9938f91a9ab0f5763a54332b129295339bf829dd:dcc7e550887234cb7361b94fdbd5cf1a9cba3ce9f084e57ff6bb94a67ae7d78d:7a06e03af960a1be3e60f942d5cc3e862aa9fbbec77c59afa3ed09b99ed8ad63:736b696c6c732f6e6f6d6164616d61732f6b616b616f74616c6b2d6d6163:5ef61575cc7c56e0a738f38e0e9a576f","risk_level":"high","is_blocked":false,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"confirmation_required","manual_install_policy":"allowed","summary":"Four findings involve genuine execution of a floating external npm package; eleven findings are unsupported matches involving documentation, standard paths, or readable Korean text. A separate trust issue promotes remotely downloaded output to primary skill instructions, beyond the reviewed files. No evidence of credential theft or deliberate data exfiltration was found in the supplied sources; external dependency implementations were not reviewed.","remediation":[{"issue":"Bootstrap commands execute a floating npm major version without an exact reviewed release.","severity":"medium","suggestion":"Pin an exact reviewed package version, verify package provenance, and obtain user approval before downloading or executing external dependencies."},{"issue":"Downloaded CLI output is designated as primary instructions outside the audited source snapshot.","severity":"high","suggestion":"Bundle versioned instructions with the skill. Treat remote output as untrusted data and require review before adopting changed instructions."},{"issue":"The update command targets every coding-agent skill installation, beyond KakaoTalk search.","severity":"medium","suggestion":"Remove global updating from the search workflow. Require separate approval for updates and clearly list affected installations."}],"risk_factor_evidence":[{"factor":"network","evidence":[{"file":"instruction.md","line_end":46,"line_start":46},{"file":"SKILL.md","line_end":35,"line_start":35}]},{"factor":"filesystem","evidence":[{"file":"instruction.md","line_end":54,"line_start":54},{"file":"references/TRADEMARK-LEGAL-STATEMENT.md","line_end":9,"line_start":9}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":21,"line_start":19},{"file":"SKILL.md","line_end":25,"line_start":21},{"file":"SKILL.md","line_end":27,"line_start":25},{"file":"SKILL.md","line_end":31,"line_start":27},{"file":"SKILL.md","line_end":33,"line_start":31},{"file":"SKILL.md","line_end":35,"line_start":33},{"file":"SKILL.md","line_end":45,"line_start":35},{"file":"SKILL.md","line_end":47,"line_start":45}]}],"critical_findings":[],"high_findings":[{"title":"Remote instruction output receives primary authority","locations":[{"file":"SKILL.md","line_end":23,"line_start":15}],"confidence":0.96,"description":"The stub says to \"follow its output as the primary instructions for this skill\" and describes runtime-selected instructions as \"always up to date.\" This delegates behavioral authority to mutable external output, allowing instructions outside the audited snapshot to redirect the agent.","review_kind":"security","source_category":"semantic","source_severity":"high","confidence_reasoning":"The source explicitly grants primary instructional authority to CLI output fetched through a floating package version. No malicious remote payload was inspected or established."}],"medium_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":21,"line_start":19}],"confidence":0.97,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"Although the match starts at a Markdown fence, its block executes npx with a floating @0 package version. Downloaded package code runs locally without an exact reviewed release."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":27,"line_start":25}],"confidence":0.96,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The fenced files command executes the external npm package through npx, despite its informational purpose. The floating @0 version allows executable dependency changes."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":33,"line_start":31}],"confidence":0.98,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The fenced command executes a floating npm package and requests updates across coding-agent skill installations. This introduces unreviewed code and modifications beyond KakaoTalk search."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":47,"line_start":45}],"confidence":0.96,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"Reading the disclaimer is implemented by executing the external npm package through npx. Even this read operation runs floating-version package code locally."}],"low_findings":[],"dangerous_patterns":[],"files_scanned":5,"total_lines":279,"audit_model":"codex","audited_at":"2026-11-08T14:42:37.144+00:00","created_at":"2026-11-09T16:01:52.734664+00:00","static_findings":[{"id":"network:instruction.md:46:hardcoded-url","file":"instruction.md","pattern":"Hardcoded URL","snippet":"brew tap NomaDamas/katok https://github.com/NomaDamas/katok.git","category":"network","line_end":46,"severity":"low","line_start":46},{"id":"filesystem:instruction.md:54:hidden-file-access","file":"instruction.md","pattern":"Hidden file access","snippet":"export PATH=\"$HOME/.cargo/bin:$PATH\"","category":"filesystem","line_end":54,"severity":"medium","line_start":54},{"id":"blocker:instruction.md:142:system-reconnaissance","file":"instruction.md","pattern":"System reconnaissance","snippet":"검색 결과는 먼저 snippet과 chunk id 중심으로 요약한다. 사용자가 특정 결과를 열어 달라고 하거나 chunk id를 제공했을 때만 원문 chunk를 조회한다.","category":"blocker","line_end":142,"severity":"low","line_start":142},{"id":"filesystem:references/TRADEMARK-LEGAL-STATEMENT.md:9:non-standard-device-file-access","file":"references/TRADEMARK-LEGAL-STATEMENT.md","pattern":"Non-standard device file access","snippet":"전체 검토: [제3자 상표의 기능 설명·호환 대상 표시 검토](https://github.com/NomaDamas/k-skill/blob/dev/docs/legal/trademar","category":"filesystem","line_end":9,"severity":"high","line_start":9},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":21,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":25,"severity":"medium","line_start":21},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":27,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":31,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":33,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":35,"severity":"medium","line_start":33},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, ","category":"external_commands","line_end":45,"severity":"medium","line_start":35},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":47,"severity":"medium","line_start":45},{"id":"network:SKILL.md:35:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"If `npx` is unavailable, install Node.js 18+ or follow https://github.com/NomaDamas/k-skill#readme, ","category":"network","line_end":35,"severity":"low","line_start":35},{"id":"obfuscation:references/DISCLAIMER.md:1:heuristic-high-file-entropy-6-66-bits-possible-b","file":"references/DISCLAIMER.md","pattern":"[HEURISTIC] High file entropy (6.66 bits) - possible binary/encrypted content","snippet":"File: references/DISCLAIMER.md","category":"obfuscation","line_end":1,"severity":"high","line_start":1},{"id":"obfuscation:references/TRADEMARK-LEGAL-STATEMENT.md:1:heuristic-high-file-entropy-6-55-bits-possible-b","file":"references/TRADEMARK-LEGAL-STATEMENT.md","pattern":"[HEURISTIC] High file entropy (6.55 bits) - possible binary/encrypted content","snippet":"File: references/TRADEMARK-LEGAL-STATEMENT.md","category":"obfuscation","line_end":1,"severity":"high","line_start":1}],"finding_verdicts":[{"id":"network:instruction.md:46:hardcoded-url","reason":"The GitHub URL identifies the documented Homebrew tap for installing katok. This line contains no chat-data upload or hidden network destination.","verdict":"false_positive","confidence":0.97},{"id":"filesystem:instruction.md:54:hidden-file-access","reason":"The command prepends the standard Cargo binary directory to PATH so the installed CLI can be found. It does not read hidden files.","verdict":"false_positive","confidence":0.99},{"id":"blocker:instruction.md:142:system-reconnaissance","reason":"The Korean sentence limits responses to snippets and chunk identifiers until the user requests full content. It describes privacy-preserving retrieval, not system reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/TRADEMARK-LEGAL-STATEMENT.md:9:non-standard-device-file-access","reason":"The matched text is a Markdown hyperlink to a legal review on GitHub. The /dev/ component is a repository branch segment, not device-file access.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"Although the match starts at a Markdown fence, its block executes npx with a floating @0 package version. Downloaded package code runs locally without an exact reviewed release.","verdict":"confirmed","confidence":0.97},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"This range contains Markdown fences and explanatory prose, not shell command substitution or Ruby execution. The executable command in the preceding block is adjudicated separately.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"The fenced files command executes the external npm package through npx, despite its informational purpose. The floating @0 version allows executable dependency changes.","verdict":"confirmed","confidence":0.96},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"The cited range contains closing and opening Markdown fences plus update guidance. These backticks are formatting, not executable shell substitutions.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"The fenced command executes a floating npm package and requests updates across coding-agent skill installations. This introduces unreviewed code and modifications beyond KakaoTalk search.","verdict":"confirmed","confidence":0.98},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"The range contains a closing Markdown fence and installation fallback prose. The inline npx mention does not execute a shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"This range contains documentation links, legal restrictions, and a Markdown fence. It contains no executable command or Ruby backtick expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","reason":"Reading the disclaimer is implemented by executing the external npm package through npx. Even this read operation runs floating-version package code locally.","verdict":"confirmed","confidence":0.96},{"id":"network:SKILL.md:35:hardcoded-url","reason":"Both URLs are public GitHub documentation or source links. This sentence does not transmit local data or execute a network request.","verdict":"false_positive","confidence":0.99},{"id":"obfuscation:references/DISCLAIMER.md:1:heuristic-high-file-entropy-6-66-bits-possible-b","reason":"The complete file is readable Korean legal prose with ordinary Markdown links and usage restrictions. No encoded payload, binary content, or obfuscated instructions were found.","verdict":"false_positive","confidence":0.99},{"id":"obfuscation:references/TRADEMARK-LEGAL-STATEMENT.md:1:heuristic-high-file-entropy-6-55-bits-possible-b","reason":"The complete file is readable Korean trademark guidance with legal citations. Its multilingual text does not establish encrypted content or an executable payload.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[{"title":"Remote instruction output receives primary authority","severity":"high","locations":[{"file":"SKILL.md","line_end":23,"line_start":15}],"confidence":0.96,"description":"The stub says to \"follow its output as the primary instructions for this skill\" and describes runtime-selected instructions as \"always up to date.\" This delegates behavioral authority to mutable external output, allowing instructions outside the audited snapshot to redirect the agent.","confidence_reasoning":"The source explicitly grants primary instructional authority to CLI output fetched through a floating package version. No malicious remote payload was inspected or established."}],"subject_marketplace_commit_sha":"9938f91a9ab0f5763a54332b129295339bf829dd","subject_content_hash":"dcc7e550887234cb7361b94fdbd5cf1a9cba3ce9f084e57ff6bb94a67ae7d78d","subject_tree_hash":"7a06e03af960a1be3e60f942d5cc3e862aa9fbbec77c59afa3ed09b99ed8ad63","subject_plugin_path":"skills/nomadamas/kakaotalk-mac","audit_payload_hash":"5ef61575cc7c56e0a738f38e0e9a576f","confirmed_risk_level":"high","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"9938f91a9ab0f5763a54332b129295339bf829dd","contentHash":"dcc7e550887234cb7361b94fdbd5cf1a9cba3ce9f084e57ff6bb94a67ae7d78d","treeHash":"7a06e03af960a1be3e60f942d5cc3e862aa9fbbec77c59afa3ed09b99ed8ad63","pluginPath":"skills/nomadamas/kakaotalk-mac","auditPayloadHash":"5ef61575cc7c56e0a738f38e0e9a576f"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/nomadamas-kakaotalk-mac/audits/1/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"high","confirmedFindingCount":1,"capabilityReviewCount":4,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}