JetBrains Marketplace Verified

Workflow Rule Manager

by JetBrains · 308 users
37573991-28be-51fc-a183-8a0b9a8c3b3a | v0.0.6
53/ 100
MEDIUM risk
Analyst verdict
Review before use

The AI review rates the findings as likely false positive, but the risk score (53/100) still counts them.

Analysis record

Analysed
4 days ago
Version
v0.0.6
Artifact
SHA256 BCC…490
Source
Findings (non-IoC)

Is Workflow Rule Manager safe?

Workflow Rule Manager is a JetBrains add-on for managing workflow rules inside the IDE. JetBrains publishes it, and around 300 people have it installed. It declares no special permissions and asks for no host access, and the plugin lists no network endpoints or hardcoded domains.

The scan's only medium-severity items sit in one bundled webview file, widgets/assets/widget-PzqQ8OgQ.js. That file contains a fetch call, logged as NET-FETCH-widgets/assets/widget-PzqQ8OgQ.js-1, and three socket.io client references, including NET-SOCKET_IO-widgets/assets/widget-PzqQ8OgQ.js-37. If those socket references reached a server controlled by someone else, the panel could send your rule contents off the machine. That is what a real finding there would mean.

Nothing in the results shows a destination. No domain, address or endpoint is recorded anywhere, and there are no findings for reading .env files, SSH keys or cloud credentials, which are the things a plugin built to steal from you would go after. The remaining low-severity matches are code-smell rules that fire on minified JavaScript, the same way they fire on almost every compressed bundle. The scanner is matching library names and Node API calls inside a build artifact, not describing behaviour in the plugin.

A rule manager with a webview panel needs a channel to its own backend, and socket.io plus fetch is an ordinary way to build one. Nothing here points at a host you did not choose.

Evidence ledger

Ranked by severity · findings with a source location link to the code viewer

23 detail rows

YARA Rule Matches

9 rules
SeverityRuleHitsFilesMetadata
LOWpostinstall persistence mechanism 1
widgets/assets/widget-PzqQ8OgQ.js
-
LOWpostinstall crypto operations 1
widgets/assets/widget-PzqQ8OgQ.js
-
LOWpostinstall file manipulation 2
widgets/assets/widget-PzqQ8OgQ.jswidgets/assets/widget-CWiSmnx8.css
-
LOWpostinstall registry modification 1
widgets/assets/widget-PzqQ8OgQ.js
-
LOWpostinstall obfuscation 2
widgets/assets/widget-PzqQ8OgQ.jswidgets/assets/widget-CWiSmnx8.css
-
LOWpostinstall network communication 1
widgets/assets/widget-PzqQ8OgQ.js
-
LOWpostinstall system command 2
widgets/assets/widget-PzqQ8OgQ.jswidgets/assets/widget-CWiSmnx8.css
-
LOWpostinstall file download 1
widgets/assets/widget-PzqQ8OgQ.js
-
LOWNoUseWeakRandom 1
widgets/assets/widget-PzqQ8OgQ.js
-

Publisher Evidence

High

JetBrains

Publisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.

99
Noisy-finding weight
x0.50
Publisher domain
jetbrains.com
Trusted match
Store verification signal
Verified publisher
Verified
Extension portfolio
951
Portfolio

12 evidence rows available.

Finding Categories

4
Network

YARA Rules Matched

9 rules(12 hits)
postinstall persistence mechanism postinstall crypto operations postinstall file manipulation postinstall registry modification postinstall obfuscation postinstall network communication postinstall system command postinstall file download NoUseWeakRandom

AI Security Report

AI Security Review

Evidence context: threat category none; evidence quality moderate.

Workflow Rule Manager is a JetBrains Marketplace plugin published by JetBrains, version 0.0.6, with 300 reported users. It declares no permissions and no host permissions, and the plugin metadata lists no network endpoints and no hardcoded domains anywhere in the package. What the package does contain is a webview panel under widgets/.

The scan returned four medium-severity network matches, all inside one bundled webview asset, widgets/assets/widget-PzqQ8OgQ.js. Three are socket.io client references (NET-SOCKET_IO-widgets/assets/widget-PzqQ8OgQ.js-37, -38 and -40) and one is a fetch call (NET-FETCH-widgets/assets/widget-PzqQ8OgQ.js-1). A JetBrains plugin that renders a rule interface in an embedded browser typically opens a socket to a server the IDE process runs on localhost, and socket.io is a common library for that channel. The file is minified build output, not hand-written payload code.

Nothing here reads the filesystem in a way that needs justifying. There are no process-spawn findings, no file-read findings and no secret-category findings. The specific targets credential theft would need, such as .env files, SSH keys, .git/config or cloud token files, do not appear anywhere in the results. The twelve low-severity code-smell matches are the standard yield from scanning minified JavaScript: rules in the postinstall_* and credential_* families fire on any Node bundle that mentions fetch, exec, fs or process.env, and they carry no behaviour of their own. The seven info-level items are metadata.

The strongest counterargument is that this is a 0.0.x plugin with a small install base, from a publisher name that is trivial to imitate, shipping a webview that opens a socket. If that socket reached a remote host, a rule manager with workspace visibility could stream project data outward. The counterargument does not survive the evidence: no endpoint, host or address is recorded, the socket.io strings sit in the same bundled asset as an ordinary fetch call, and the scanner logged no IoC hits and no obfuscation findings. A socket.io import with no destination attached is a library reference.

What would change the picture is a network endpoint entry naming a non-JetBrains host, a secret-category finding, or a manifest permission request. None is present. Static inspection cannot see a URL assembled at runtime from configuration, so a runtime check of the webview's outbound connections is the only way to close that gap completely.

Key Reasons

  • The only medium-severity findings are a fetch call and socket.io client references inside the minified webview asset widgets/assets/widget-PzqQ8OgQ.js, which matches a webview panel talking to a local IDE backend.
  • No secret-category findings exist: nothing in the package reads .env, .ssh, .git/config or cloud credential files.
  • No IoC hits, no obfuscation findings, no hardcoded domains and no declared network endpoints accompany the network matches.
  • The plugin is published by JetBrains on the JetBrains Marketplace at version 0.0.6, an official first-party listing rather than a re-upload.
  • The twelve low-severity code-smell matches are the expected output of scanning minified JavaScript and carry no behavioural detail.

False Positive Considerations

  • Minified webview bundle widgets/assets/widget-PzqQ8OgQ.js trips network rules on bundled library names rather than on behaviour.
  • Low-severity code-smell rules match generic Node patterns such as fetch, exec, fs and process.env in any compressed bundle.
  • High finding counts in widgets/ assets are multiplicative noise from bundled dependencies, not independent signals.

Reviewed 2026-09-29; recommended action: suppress false positive; model confidence 82%.

About This Extension

This app helps you manage workflow rules in your projects, all in one place: Set the order for running on-change rules.Review rule requirement errors.Activate and...

Frequently Asked Questions