Github Markdown Writer
The AI review rates the findings as likely false positive, but the risk score (84/100) still counts them.
Analysis record
- Analysed
- 7 months ago
- Version
- v5.0.3.1
- Source
- Findings (non-IoC)
Evidence ledger
Ranked by severity · findings with a source location link to the code viewer
YARA Rule Matches
19 rules| Severity | Rule | Hits | Files | Metadata |
|---|---|---|---|---|
| HIGH | OriginsNotVerified Browsers allow message exchanges between Window objects of different origins. Because any window can send / receive messages from other window it is important to verify the sender's / receiver's identity: When sending message with postMessage method, the identity's receiver should be defined (the wildcard keyword (*) should not be used).\nWhen receiving message with message event, the sender's identity should be verified using the origin and possibly source properties. For more information checkout the OWASP A2:2017 (https://owasp.org/www-project-top-ten/2017/A2_2017-Broken_Authentication) and (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) advisory. | 2 | ace/ace.jsace/worker-html.js | FP 15% |
| HIGH | postinstall crypto operations Cryptographic operations detected | 85 | ace/mode-scrypt.jsace/mode-markdown.jsace/mode-coldfusion.js +82 more | Risky Plugins Authors FP 30% |
| HIGH | DebuggerStatementsShouldNotBeUsed The debugger statement can be placed anywhere in procedures to suspend execution. Using the debugger statement is similar to setting a breakpoint in the code. By definition such statement must absolutely be removed from the source code to prevent any unexpected behavior or added vulnerability to attacks in production. For more information checkout the CWE-489 (https://cwe.mitre.org/data/definitions/489.html) advisory. | 58 | ace/mode-ftl.jsace/mode-liquid.jsace/mode-groovy.js +55 more | FP 10% |
| HIGH | php uname | 2 | ace/mode-php_laravel_blade.jsace/mode-php.js | FP 30% |
| HIGH | postinstall process injection Process injection techniques detected | 1 | ace/mode-autohotkey.js | Risky Plugins Authors FP 10% |
| HIGH | postinstall file download File download activity detected | 85 | ace/mode-coldfusion.jsace/ext-settings_menu.jsace/mode-sjs.js +82 more | Risky Plugins Authors FP 30% |
| HIGH | postinstall obfuscation Code obfuscation techniques detected | 155 | ace/worker-coffee.jsjquery-ui-1.11.2/jquery-ui.cssace/mode-logtalk.js +152 more | Risky Plugins Authors FP 20% |
| HIGH | credential env files Environment configuration file path detected | 6 | ace/worker-html.jslibs/less-1.3.1.min.jsace/worker-javascript.js +3 more | Risky Plugins Authors FP 10% |
| HIGH | php malfunctions | 2 | ace/mode-php.jsace/mode-php_laravel_blade.js | FP 10% |
| HIGH | LocalStorageShouldNotBeUsed Session storage and local storage are HTML 5 features which allow developers to easily store megabytes of data client-side, as opposed to the 4Kb cookies can accommodate. While useful to speed applications up on the client side, it can be dangerous to store sensitive information this way because the data is not encrypted by default and any script on the page may access it. This rule raises an issue when the localStorage and sessionStorage API's are used. For more information checkout the OWSAP A3:2017 (https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure.html) advisory. | 1 | index.js | FP 5% |
| HIGH | postinstall registry modification Windows registry modification detected | 23 | ace/mode-csound_document.jsace/worker-yaml.jsace/keybinding-vim.js +20 more | Risky Plugins Authors FP 30% |
| HIGH | NoUseEval The eval function is extremely dangerous. Because if any user input is not handled correctly and passed to it, it will be possible to execute code remotely in the context of your application (RCE - Remote Code Executuion). For more information checkout the CWE-94 (https://cwe.mitre.org/data/definitions/94.html) advisory. | 5 | jquery-ui-1.11.2/external/jquery/jquery.jsace/mode-php.jsace/worker-coffee.js +2 more | FP 10% |
| HIGH | SQLInjection SQL queries often need to use a hardcoded SQL string with a dynamic parameter coming from a user request. Formatting a string to add those parameters to the request is a bad practice as it can result in an SQL injection. The safe way to add parameters to a SQL query is to use SQL binding mechanisms. For more information checkout the CWE-564 (https://cwe.mitre.org/data/definitions/564.html) and OWASP A1:2017 (https://owasp.org/www-project-top-ten/2017/A1_2017-Injection.html) advisory. | 14 | ace/worker-base.jsace/worker-css.jsjquery-ui-1.11.2/jquery-ui.js +11 more | FP 10% |
| HIGH | postinstall environment access Environment variable access detected | 74 | ace/mode-actionscript.jsace/mode-c_cpp.jsace/mode-crystal.js +71 more | Risky Plugins Authors FP 40% |
| HIGH | postinstall system command System command execution detected | 202 | ace/mode-fsl.jsace/mode-logtalk.jslibs/jquery-2.1.3.min.js +199 more | Risky Plugins Authors FP 10% |
| HIGH | postinstall persistence mechanism Persistence mechanism detected | 43 | ace/mode-ejs.jsace/worker-html.jsace/mode-sass.js +40 more | Risky Plugins Authors FP 20% |
| HIGH | postinstall file manipulation File system manipulation detected | 165 | ace/mode-groovy.jsgithub/github.jsace/ext-rtl.js +162 more | Risky Plugins Authors FP 20% |
| HIGH | NoUseWeakRandom When software generates predictable values in a context requiring unpredictability, it may be possible for an attacker to guess the next value that will be generated, and use this guess to impersonate another user or access sensitive information. As the Math.random() function relies on a weak pseudorandom number generator, this function should not be used for security-critical applications or for protecting sensitive data. In such context, a cryptographically strong pseudorandom number generator (CSPRNG) should be used instead. For more information checkout the CWE-338 (https://cwe.mitre.org/data/definitions/338.html) advisory. | 3 | jquery-ui-1.11.2/external/jquery/jquery.jslibs/jquery-2.1.3.min.jsace/worker-javascript.js | FP 5% |
| HIGH | postinstall network communication Network communication detected | 74 | css/styles-dark.css_metadata/verified_contents.jsonjquery-ui-1.11.2/jquery-ui.min.js +71 more | Risky Plugins Authors FP 30% |
Publisher Evidence
Limited evidenceMooninSky
Publisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.
Edge does not expose the same publisher verification data as IDE stores, so this score is deliberately conservative.
12 evidence rows available.
Finding Categories
YARA Rules Matched
19 rules(1000 hits)AI Security Report
AI Security Review
Evidence context: threat category none; evidence quality moderate.
This extension, 'Github Markdown Writer' by MooninSky, presents a classic false-positive pattern driven by bundled web development libraries. The 1,572 total findings are dominated by 1,017 high-severity 'malware-signature' matches, but these are YARA pattern matches on common JavaScript code, not actual malware detections.
The 10 network findings all occur in standard bundled libraries: libs/yaml.js:271 (YAML parsing), github/github.js:35 and github/github.js:59 (GitHub API client), ace/snippets/ruby.js:1 (Ace editor), jquery-ui-1.11.2/external/jquery/jquery.js:8621 (jQuery), and libs/jquery-confirm.min.js:10 (jQuery confirm plugin). These libraries legitimately use XMLHttpRequest, fetch, and jQuery AJAX for their documented purposes. The only finding in what appears to be extension code is Controller/windowControl.js:25, which shows a fetch call but no suspicious destination domain.
The 2 obfuscation findings (OBFUSCATION-fromcharcode_bulk) appear in jquery-ui-1.11.2/jquery-ui.js and ace/worker-lua.js — both bundled third-party libraries. The fromcharcode_bulk pattern is common in minified JavaScript and does not indicate malicious obfuscation.
Critically, there are ZERO specific suspicious domains in the IoC findings, ZERO credential access patterns, ZERO browser hijacking indicators, and ZERO actual malware signatures (only YARA pattern matches). The extension's stated purpose — supporting GitHub.io/Jekyll blog writing with Markdown preview — aligns with the code structure (Ace editor for code editing, GitHub.js for API access, jQuery for UI).
The strongest counterargument is the 'unknown' version field and zero user count, which could indicate a newly uploaded or poorly maintained extension. However, version metadata alone does not indicate malicious intent. The absence of suspicious domains, credential patterns, or actual malware signatures means the high finding count is explained by known false-positive patterns: YARA rules matching common JavaScript in bundled libraries, and network detection on standard web development tools.
This extension should be suppressed from automated alerts as a known false-positive case.
Key Reasons
- All network findings occur in bundled libraries (jQuery, Ace editor, YAML.js, GitHub.js)
- 1,017 malware-signature findings are YARA pattern matches, not actual malware detections
- Obfuscation patterns found only in minified bundled libraries (jQuery UI, Ace worker)
- Zero suspicious domains or credential access patterns detected
False Positive Considerations
- YARA malware-signature rules matching common JavaScript in bundled libraries
- Network findings in standard web development libraries (jQuery, Ace editor)
- OBFUSCATION-fromcharcode_bulk in minified third-party code
- Bundled dependency code triggering multiplicative false positives
Reviewed 2026-04-28; recommended action: suppress false positive; model confidence 80%.
Source Code Not Available
Source code is not available for this version of the extension.
Frequently Asked Questions
Similar Extensions
Related extensions from the same publisher or marketplace