Back to skill

Security audit

算算|八字·六爻·塔罗

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed Chinese fortune-telling skill that runs local calculation scripts and data files, with no evidence of network access, persistence, credential use, or hidden destructive behavior.

Install only if you are comfortable giving the agent birth details, gender, city, and divination questions for local calculation and interpretation. Treat results as reflective or entertainment guidance, not medical, legal, financial, or life-critical advice; expect primarily Chinese-language output.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (19)

Obfuscated Code

High
Category
Supply Chain
Content
2188621.191481, 15.218437494,
        2322147.76
      ],
      QB:_decode('FrcFs22AFsckF2tsDtFqEtF1posFdFgiFseFtmelpsEfhkF2anmelpFlF1ikrotcnEqEq2FfqmcDsrFor22FgFrcgDscFs22FgEeFtE2sfFs22sCoEsaF2tsD1FpeE2eFsssEciFsFnmelpFcFhkF2tcnEqEpFgkrotcnEqrEtFermcDsrE222FgBmcmr22DaEfnaF222sD1FpeForeF2tssEfiFpEoeFssD1iFstEqFppDgFstcnEqEpFg11FscnEqrAoAF2ClAEsDmDtCtBaDlAFbAEpAAAAAD2FgBiBqoBbnBaBoAAAAAAAEgDqAdBqAFrBaBoACdAAf1AACgAAAeBbCamDgEifAE2AABa1C1BgFdiAAACoCeE1ADiEifDaAEqAAFe1AcFbcAAAAAF1iFaAAACpACmFmAAAAAAAACrDaAAADG0'),
      SHUO_KB:[1457698.231017, 29.53067166, 1546082.512234, 29.53085106, 1640640.735300, 29.53060000, 1642472.151543, 29.53085439, 1683430.509300, 29.53086148, 1752148.041079, 29.53085097, 1807665.420323, 29.53059851, 1883618.114100, 29.53060000, 1907360.704700, 29.53060000, 1936596.224900, 29.53060000, 1939135.675300, 29.53060000, 1947168.00],
      SB:_decode('EqoFscDcrFpmEsF2DfFideFelFpFfFfFiaipqti1ksttikptikqckstekqttgkqttgkqteksttikptikq2fjstgjqttjkqttgkqtekstfkptikq2tijstgjiFkirFsAeACoFsiDaDiADc1AFbBfgdfikijFifegF1FhaikgFag1E2btaieeibggiffdeigFfqDfaiBkF1kEaikhkigeidhhdiegcFfakF1ggkidbiaedksaFffckekidhhdhdikcikiakicjF1deedFhFccgicdekgiFbiaikcfi1kbFibefgEgFdcFkFeFkdcfkF1kfkcickEiFkDacFiEfbiaejcFfffkhkdgkaiei1ehigikhdFikfckF1dhhdikcfgjikhfjicjicgiehdikcikggcifgiejF1jkieFhegikggcikFegiegkfjebhigikggcikdgkaFkijcfkcikfkcifikiggkaeeigefkcdfcfkhkdgkegieidhijcFfakhfgeidieidiegikhfkfckfcjbdehdikggikgkfkicjicjF1dbidikFiggcifgiejkiegkigcdiegfggcikdbgfgefjF1kfegikggcikdgFkeeijcfkcikfkekcikdgkabhkFikaffcfkhkdgkegbiaekfkiakicjhfgqdq2fkiakgkfkhfkfcjiekgFebicggbedF1jikejbbbiakgbgkacgiejkijjgigfiakggfggcibFifjefjF1kfekdgjcibFeFkijcfkfhkfkeaieigekgbhkfikidfcjeaibgekgdkiffiffkiakF1jhbakgdki1dj1ikfkicjicjieeFkgdkicggkighdF1jfgkgfgbdkicggfggkidFkiekgijkeigfiskiggfaidheigF1jekijcikickiggkidhhdbgcfkFikikhkigeidieFikggikhkffaffijhidhhakgdkhkijF1kiakF1kfheakgdkifiggkigicjiejkieedikgdfcggkigieeiejfgkgkigbgikicggkiaideeijkefjeijikhkiggkiaidheigcikaikffikijgkiahi1hhdikgjfifaakekigh
...[truncated 25 chars]
Confidence
50% confidence
Finding
Code contains obfuscation (base64, hex encoding with execution). This is often used to hide malicious functionality.

Obfuscated Code

High
Category
Supply Chain
Content
],
      QB:_decode('FrcFs22AFsckF2tsDtFqEtF1posFdFgiFseFtmelpsEfhkF2anmelpFlF1ikrotcnEqEq2FfqmcDsrFor22FgFrcgDscFs22FgEeFtE2sfFs22sCoEsaF2tsD1FpeE2eFsssEciFsFnmelpFcFhkF2tcnEqEpFgkrotcnEqrEtFermcDsrE222FgBmcmr22DaEfnaF222sD1FpeForeF2tssEfiFpEoeFssD1iFstEqFppDgFstcnEqEpFg11FscnEqrAoAF2ClAEsDmDtCtBaDlAFbAEpAAAAAD2FgBiBqoBbnBaBoAAAAAAAEgDqAdBqAFrBaBoACdAAf1AACgAAAeBbCamDgEifAE2AABa1C1BgFdiAAACoCeE1ADiEifDaAEqAAFe1AcFbcAAAAAF1iFaAAACpACmFmAAAAAAAACrDaAAADG0'),
      SHUO_KB:[1457698.231017, 29.53067166, 1546082.512234, 29.53085106, 1640640.735300, 29.53060000, 1642472.151543, 29.53085439, 1683430.509300, 29.53086148, 1752148.041079, 29.53085097, 1807665.420323, 29.53059851, 1883618.114100, 29.53060000, 1907360.704700, 29.53060000, 1936596.224900, 29.53060000, 1939135.675300, 29.53060000, 1947168.00],
      SB:_decode('EqoFscDcrFpmEsF2DfFideFelFpFfFfFiaipqti1ksttikptikqckstekqttgkqttgkqteksttikptikq2fjstgjqttjkqttgkqtekstfkptikq2tijstgjiFkirFsAeACoFsiDaDiADc1AFbBfgdfikijFifegF1FhaikgFag1E2btaieeibggiffdeigFfqDfaiBkF1kEaikhkigeidhhdiegcFfakF1ggkidbiaedksaFffckekidhhdhdikcikiakicjF1deedFhFccgicdekgiFbiaikcfi1kbFibefgEgFdcFkFeFkdcfkF1kfkcickEiFkDacFiEfbiaejcFfffkhkdgkaiei1ehigikhdFikfckF1dhhdikcfgjikhfjicjicgiehdikcikggcifgiejF1jkieFhegikggcikFegiegkfjebhigikggcikdgkaFkijcfkcikfkcifikiggkaeeigefkcdfcfkhkdgkegieidhijcFfakhfgeidieidiegikhfkfckfcjbdehdikggikgkfkicjicjF1dbidikFiggcifgiejkiegkigcdiegfggcikdbgfgefjF1kfegikggcikdgFkeeijcfkcikfkekcikdgkabhkFikaffcfkhkdgkegbiaekfkiakicjhfgqdq2fkiakgkfkhfkfcjiekgFebicggbedF1jikejbbbiakgbgkacgiejkijjgigfiakggfggcibFifjefjF1kfekdgjcibFeFkijcfkfhkfkeaieigekgbhkfikidfcjeaibgekgdkiffiffkiakF1jhbakgdki1dj1ikfkicjicjieeFkgdkicggkighdF1jfgkgfgbdkicggfggkidFkiekgijkeigfiskiggfaidheigF1jekijcikickiggkidhhdbgcfkFikikhkigeidieFikggikhkffaffijhidhhakgdkhkijF1kiakF1kfheakgdkifiggkigicjiejkieedikgdfcggkigieeiejfgkgkigbgikicggkiaideeijkefjeijikhkiggkiaidheigcikaikffikijgkiahi1hhdikgjfifaakekighie1hiaikggikhkffakicjhiahaikggikhkijF1kfejfeFhidikggiff
...[truncated 25 chars]
Confidence
50% confidence
Finding
Code contains obfuscation (base64, hex encoding with execution). This is often used to hide malicious functionality.

Obfuscated Code

High
Category
Supply Chain
Content
var _SIZE = 18;
    var _ZERO='0'.charCodeAt(0);
    var _TAG_REMOVE = '~';
    var _NAMES_IN_USE=_NAMES,_DATA='2001122900200201012001123000200201012002010101200201012002010201200201012002010301200201012002020910200202122002021010200202122002021211200202122002021311200202122002021411200202122002021511200202122002021611200202122002021711200202122002021811200202122002042730200205012002042830200205012002050131200205012002050231200205012002050331200205012002050431200205012002050531200205012002050631200205012002050731200205012002092860200210012002092960200210012002100161200210012002100261200210012002100361200210012002100461200210012002100561200210012002100661200210012002100761200210012003010101200301012003020111200302012003020211200302012003020311200302012003020411200302012003020511200302012003020611200302012003020711200302012003020810200302012003020910200302012003042630200305012003042730200305012003050131200305012003050231200305012003050331200305012003050431200305012003050531200305012003050631200305012003050731200305012003092760200310012003092860200310012003100161200310012003100261200310012003100361200310012003100461200310012003100561200310012003100661200310012003100761200310012004010101200401012004011710200401222004011810200401222004012211200401222004012311200401222004012411200401222004012511200401222004012611200401222004012711200401222004012811200401222004050131200405012004050231200405012004050331200405012004050431200405012004050531200405012004050631200405012004050731200405012004050830200405012004050930200405012004100161200410012004100261200410012004100361200410012004100461200410012004100561200410012004100661200410012004100761200410012004100960200410012004101060200410012005010101200501012005010201200501012005010301200501012005020510200502092005020610200502092005020911200502092005021011200502092005021111200502092005021211200502092005021311200502092005021411200502092005021511200502092005043030200505012005050131200505012005050231200505012005050331200505012005050431200505
...[truncated 27 chars]
Confidence
60% confidence
Finding
Code contains obfuscation (base64, hex encoding with execution). This is often used to hide malicious functionality.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger description is intentionally very broad, covering many common words and even inferred intent such as '运势', '情绪困惑', or cases where the user does not explicitly ask for divination. This can cause the skill to activate for ordinary conversations, increasing the chance that unrelated user inputs are routed into fortune-telling behavior and that sensitive personal data is solicited unnecessarily.

Natural-Language Policy Violations

Medium
Confidence
87% confidence
Finding
This JSON file contains user-facing descriptions, translations, and interpretive text exclusively in Chinese across the dataset. Under the policy, forcing a specific language without user opt-in or a documented regional justification is a natural-language policy issue.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
This JSON dataset consistently provides card names and descriptions in Chinese, which effectively constrains downstream use to a specific language. Under the policy, forcing a specific language without user opt-in or a clearly documented regional justification is a natural-language policy issue.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
This markdown file presents all operational instructions in Chinese and does not indicate that the skill is region-specific or that users may choose another language. That can violate a language/locale policy when skills are expected to avoid forcing a single language without user opt-in.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The skill enforces Chinese-language output via the style rule without giving users a language choice or checking the user's preferred language. This can cause misunderstanding of sensitive fortune-telling guidance, reduce informed consent, and create accessibility issues for users who are not comfortable reading Chinese.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The document is entirely written as a Chinese-only operating guide and does not provide any instruction to detect or honor the user's preferred language. In a user-facing skill, forcing one language can degrade informed consent, accessibility, and reliability of advice by causing misunderstanding, especially for nuanced interpretive content like tarot readings.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The script's natural-language interface, help text, comments describing behavior, and generated advisory/output strings are all in Chinese, and there is no indication that users can opt into another language or locale. Under the language/locale policy, forcing a specific language without user choice is a policy concern unless clearly justified as region-specific.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The script emits a detailed JSON profile derived from a user's birth date, gender, and optional location, including sensitive inferred attributes and life-score interpretations, without any consent prompt, minimization, or privacy notice. In a fortune-telling skill, these inputs are inherently personal and the generated output can reveal or persist highly sensitive profiling data that users may not realize is being exposed or logged.

Context-Inappropriate Capability

Medium
Confidence
91% confidence
Finding
The manifest describes a skill for Bazi, Liuyao, Tarot, and related fortune-telling/divination. This file also exposes `Foto` and `Tao` conversion/interpretation systems with extensive Buddhist and Taoist festival, fasting, and taboo logic, which are separate religious-calendar capabilities not obviously required to perform the declared divination tasks.

Natural-Language Policy Violations

Low
Confidence
93% confidence
Finding
This JSON contains user-facing natural-language strings exclusively in Chinese, including metadata and all lyric outputs, but it does not document that the skill is Chinese-only or offer any language/locale opt-in. Under the policy, forcing a specific language without user choice can be a natural-language policy violation unless the locale restriction is clearly justified.

Natural-Language Policy Violations

Low
Confidence
83% confidence
Finding
This JSON contains natural-language descriptions and recommendations exclusively in Chinese across the dataset. Under the language/locale policy rule, a skill should not force a specific language without user opt-in or a clearly documented locale-specific justification in the file itself.

Scope Creep

Low
Category
Excessive Agency
Content
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Confidence
70% confidence
Finding
Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Context-Inappropriate Capability

Low
Confidence
88% confidence
Finding
The manifest centers on fortune-telling and occult interpretation, but this file also provides business-calendar utilities such as next workday calculation and salary multiplier computation for statutory holidays/weekends. These are general calendaring/payroll-oriented capabilities that are not justified by the stated skill purpose.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
The I18n module hard-codes the default language to 'chs' and immediately initializes the library with that locale. This can force Chinese-language output for users unless a caller explicitly overrides it, which is a natural-language locale policy concern when no user choice or opt-in is provided in the file.

Natural-Language Policy Violations

Low
Confidence
97% confidence
Finding
This code file contains its documentation, usage instructions, and output descriptions entirely in Chinese, and the runtime error/help text is also Chinese-only. Under the policy for natural-language violations, forcing a specific language without user opt-in should be flagged when no language choice or justification is provided.

Natural-Language Policy Violations

Low
Confidence
93% confidence
Finding
The thrown error message and CLI usage output are presented only in Chinese, so users who do not read Chinese are forced into a single locale. There is no indication of user language selection or documented region-specific limitation.

Static analysis

No suspicious patterns detected.