JetBrains Marketplace Verified

TestSpark

by JetBrains · 8.8K users · 3.8 rating
b06a0e32-9a43-53a1-8e85-fc6a7ae3b61a | v0.4.2
65/ 100
MEDIUM risk
Analyst verdict
Review before use

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

Analysis record

Analysed
3 days ago
Version
v0.4.2
Artifact
SHA256 14C…577
Source
Findings (non-IoC)

Is TestSpark safe?

TestSpark is a JetBrains plugin, version 0.4.2, published by JetBrains on its own marketplace and used by around 8,800 developers. It helps you generate and run tests from inside the IDE. The plugin declares no permissions and no host permissions. The endpoint list attached to it is not a list of servers it contacts. Entries like 4v.cc and 7hx.hd.hd.ht are string fragments lifted out of files inside the plugin by a domain extractor that reads short dotted text as a hostname.

That extractor produced 664 domain hits, and the entries give the mistake away. One of them is titled XIOC-DOMAIN-evosuitelabels.properties. A properties file for the EvoSuite test generator is not a website. Others are two-letter noise, e.lt and j.eg among them. One entry, 5ڴ.to, even contains a non-ASCII character, so it cannot be a hostname at all. Alongside those sit 215 code-smell matches on the bundled JavaScript, the set that fires on any minified bundle. No malware signature matched. No obfuscation was found. No secrets were found.

A plugin that reads your project and starts a test runner is doing the job it advertises, and the file access here fits that job. The counterargument is sheer volume. More than a thousand hits sounds alarming until you see what they are. A domain extractor scanning a Java or Kotlin bundle manufactures hits by the hundred, and JetBrains reviews plugins before they reach the marketplace. What the scanner caught was filenames, short string fragments and bundle boilerplate.

Evidence ledger

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

161 detail rows
Showing 25 of 161 · highest severity first

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

Plugin Configuration

JetBrains plugins declare dependencies and extension points in plugin.xml. Plugins can register actions, services, and listeners that run within the IDE process.

JETBRAINS-MANIFEST-APPLICATION-SERVICE-org.jetbrains.research.testspark.services.KexSettingsService
JETBRAINS-MANIFEST-APPLICATION-SERVICE-org.jetbrains.research.testspark.services.LLMSettingsService
JETBRAINS-MANIFEST-APPLICATION-SERVICE-org.jetbrains.research.testspark.services.EvoSuiteSettingsService
JETBRAINS-MANIFEST-APPLICATION-SERVICE-org.jetbrains.research.testspark.services.PluginSettingsService
JETBRAINS-MANIFEST-ACTION-TestSpark.TestSparkActions

AI Security Report

AI Security Review

Evidence context: threat category none; evidence quality moderate.

TestSpark is a JetBrains IDE plugin from JetBrains itself, version 0.4.2, with roughly 8,800 users on the JetBrains marketplace. It generates and runs tests inside the IDE, which means reading project sources and starting a test runner process. That access is the stated job, not a permission grab. The manifest carries no host permissions and the plugin declares no permission strings, so nothing here reaches beyond running a test.

The 664 domain entries are extractor noise, and they say so on their face. Titles such as XIOC-DOMAIN-evosuitelabels.properties and XIOC-DOMAIN-be.cat name nothing that resolves; the first is a properties filename for the EvoSuite test generator, the others are two and three character fragments (e.lt, j.eg, 4v.cc, 7hx.hd.hd.ht) that a regex read as dotted hostnames. The network_endpoints list repeats the same fragments, including 5ڴ.to, which contains a non-ASCII character and cannot be a real DNS name. There is no network finding anywhere in the analysis. An extension that actually phoned home would produce connection evidence to sit beside its strings.

Credential access: none recorded. No secret findings at all. The 215 code-smell matches at low severity are the generic JavaScript rules that fire on fetch, exec, fs, crypto and process.env references inside any non-trivial bundle, and the credential family matches any file mentioning an API key or an environment variable. That is not evidence a real secret was touched. No .env read, no .ssh path, no cloud credential file appears anywhere in the set. Obfuscation findings: zero. The bundled and minified output is build product and the scanner flags none of it anyway. Malware signatures: zero. Tool-poisoning: zero. The medium bucket is entirely domain extraction.

Strongest counterargument: a plugin that executes test code runs arbitrary project code by design, and more than a thousand combined findings on a plugin with a real user base would fit a planted implant. That argument is about volume, not behavior. Every actual signal points the other way, a verified publisher shipping its own reviewed build, no declared permissions, no network findings, no secrets, no obfuscation, no malware match. A typosquat or a re-upload of someone else's plugin would surface in the publisher identity or in a permission request for something a test runner does not need. Neither is present.

What the scanner caught was filenames, short string fragments and minified bundle boilerplate. That is a measurement artifact of how the extraction works.

Key Reasons

  • All 664 IoC hits are domain-extractor artifacts, including XIOC-DOMAIN-evosuitelabels.properties (a filename) and 5ڴ.to (a string with a non-ASCII character)
  • No network, malware-signature, obfuscation, secret, or tool-poisoning findings in the entire set
  • 215 code-smell matches are the standard low-severity JavaScript rules that fire on any bundled non-trivial code
  • Publisher is JetBrains shipping its own plugin version 0.4.2 on the JetBrains marketplace to ~8,800 users
  • Plugin declares no permission strings and no host permissions, matching a test generation and execution tool

False Positive Considerations

  • XIOC domain extractor reading short dotted string fragments and filenames as hostnames
  • Generic code-smell rules matching fetch/exec/fs/crypto/process.env in bundled JavaScript
  • Bundled Java/Kotlin and JavaScript build output multiplying matches across many files
  • Noise inflation from mixed IoC and code-smell counts driving the total past 1,000

Reviewed 2026-09-30; recommended action: suppress false positive; model confidence 86%.

About This Extension

TestSpark is a plugin for generating unit tests. TestSpark natively integrates different AI-based test generation tools and techniques in the IDE. TestSpark currently...

Frequently Asked Questions