No material or immediate-danger item was identified.
Contextual expected matches (86)
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The LINE webhook server reads its credentials from environment variables and uses them only to verify incoming webhooks and call the LINE API. This is standard practice for a messaging bot adapter.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal fires on multiple process.env reads for LINE_CHANNEL_ACCESS_TOKEN, LINE_CHANNEL_SECRET, LINE_API_BASE_URL, REMIX_BRIDGE_URL, and related configuration. These values are used for LINE webhook signature verification and LINE API calls. The access token is passed only to the LINE tool constructor and the channel secret is used only for HMAC signature verification. No credentials are exfiltrated or written to unexpected destinations.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/line/lily-webhook-server.mjs:6
Credential access and network transmission in one file
Expected behavior · high confidence
A Telegram bot needs its token to talk to Telegram. The code reads the token from an environment variable and sends it only to Telegram's official API, which is exactly how Telegram bots work.
Technical evidence
Scanner reason: A credential source and an outbound network operation were detected in the same file.
Contextual assessment: The bot token is read from an environment variable and used to authenticate requests to the official Telegram Bot API endpoint. This is the standard and required mechanism for any Telegram bot to send and receive messages. The token is not hardcoded, not logged, and only travels to the legitimate Telegram API. No exfiltration to a third party is present.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- tavernkeeper 5
- Rule
- credential-exfiltration
- File role
- production
- Source
- adapters/telegram/lily-bot.mjs:124
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged URLs are the official Facebook Graph API and the project's local bridge on localhost. These are the expected destinations for a Messenger webhook server.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal fires on URLs such as the default Facebook Graph API base URL and the local bridge URL. Both are legitimate, well-known endpoints for the Messenger platform and the project's own local bridge. No obfuscated or unexpected external endpoints are referenced.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/messenger/lily-webhook-server.mjs:10
JavaScript analysis reported javascript.xray.data-exfiltration
Expected behavior · high confidence
The script imports a standard Node.js networking module to communicate with a local helper process. This is normal and does not send data anywhere harmful.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.data-exfiltration. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.data-exfiltration
- File role
- tooling
- Source
- scripts/verify-telegram-live-demo.mjs:5
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged link is just the default address of a small helper program that runs on your own computer. The extension talks to this local helper, which then contacts the image service on your behalf. This is exactly how the project is designed to work, and the address can be changed in settings.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged line 24 as a shady-link signal. The flagged content is a default configuration value pointing to a localhost bridge endpoint at 127.0.0.1 port 8787. This is the expected architecture: the browser extension communicates with a local Node.js bridge that holds the Remix.Camera session token server-side and proxies API calls. The bridgeUrl is a user-configurable setting, and the bridgeFetch helper uses it for all requests to the local bridge. Using plain HTTP for a localhost address is standard and does not expose traffic to the network. No exfiltration, credential theft, or concealed destination is present.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- extension/remix-camera-companion-images/index.js:24
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The plugin sends requests to a local bridge running on your own machine, which is how the project is designed to work. There are no suspicious or hidden external links in this code.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged a shady-link signal, but the only network destination in this file is a configurable bridge URL that defaults to the local loopback address. The fetch call sends image generation requests to the local bridge, which matches the stated project purpose of connecting a chatbot host to a local Remix.Camera bridge. No external or suspicious endpoint is hardcoded or reachable by default.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/typingmind/remix-camera-plugin.js:2
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code launches a local test server and gives it the same environment settings as the test runner. This is normal for starting child processes in tests and does not send any secrets anywhere.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The flagged line spreads process.env into the env object of a locally spawned child process in a test harness. The child is the bridge server bound to 127.0.0.1 on a random port. Inheriting the parent environment is standard Node.js spawn practice; specific REMIX_* variables are then overridden for the test. No environment data is transmitted to an external destination or persisted beyond the short-lived child process.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- bridge/server.node-test.mjs:401
OpenGrep reported tavernkeeper.credential-exfiltration.python-secret-to-network
Expected behavior · high confidence
The scanner saw environment variables used near a network call, but the variables are just configuration settings like character name and bridge address, not secrets. The network call goes to the local bridge on the user's own machine, which is the intended design.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.credential-exfiltration.python-secret-to-network. The match applies to this repository.
Contextual assessment: The credential-exfiltration rule fires because environment variables are read and then a network call follows. Examining the actual data flow, the os.environ.get calls retrieve REMIX_BRIDGE_URL, REMIX_PROFILE_ID, REMIX_CHARACTER_NAME, and REMIX_CHARACTER_VISUAL_IDENTITY. These are configuration values, not secrets or API keys. The network call uses urllib.request.urlopen to POST to the bridge URL, which defaults to a loopback address on port 8787. The request body contains prompt and character configuration data, not credentials. The bridge itself holds the Remix.Camera session token server-side, so the Poe bot deliberately does not handle or transmit secrets. This matches the project purpose of routing through a local bridge without exposing credentials.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.credential-exfiltration.python-secret-to-network
- File role
- production
- Source
- adapters/poe/remix_camera_poe_bot.py:79
OpenGrep reported tavernkeeper.credential-exfiltration.javascript-secret-to-network
Expected behavior · high confidence
The bridge uses your Remix.Camera login token to authenticate with Remix.Camera's own API, which is exactly what it is designed to do. There is no evidence of the token being leaked or sent to any other party.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.credential-exfiltration.javascript-secret-to-network. The match applies to this repository.
Contextual assessment: The remixFetch function reads config.sessionToken or config.apiKey and places it in a Bearer Authorization header on a fetch call to config.apiBaseUrl concatenated with a pathname. The default apiBaseUrl is the Remix.Camera API domain. All callers pass Remix.Camera API pathnames such as profile listing, reference image upload, and generation endpoints. The credential is transmitted only to the expected service provider as an authentication header, which is the stated purpose of the bridge: keeping the token server-side and proxying API calls so it never appears in the browser. No evidence shows the token being sent to any non-Remix.Camera destination, logged, or returned in responses.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.credential-exfiltration.javascript-secret-to-network
- File role
- production
- Source
- bridge/server.mjs:1507-1510
JavaScript analysis reported javascript.xray.crypto.weak-algorithm
Expected behavior · high confidence
The code uses SHA1 to verify WeChat webhook signatures because WeChat's own API requires this specific algorithm. The developer has no choice in the matter, and the code uses a secure comparison method to prevent timing attacks. This is following the platform's rules correctly.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.crypto.weak-algorithm. The match applies to this repository.
Contextual assessment: The crypto.weak-algorithm signal was triggered by crypto.createHash("sha1") at line 205 in the verifyWeChatSignature function. SHA1 is the algorithm mandated by the WeChat Official Account webhook signature verification specification. The implementation correctly sorts the token, timestamp, and nonce, concatenates them, hashes with SHA1, and compares using crypto.timingSafeEqual with length checks — which is the recommended secure comparison pattern. The developer cannot use a stronger hash because the WeChat API specifies SHA1. The comparison is against an attacker-supplied signature that must match the server-computed digest, so collision attacks are not relevant in this verification context.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.crypto.weak-algorithm
- File role
- production
- Source
- adapters/wechat/remix-wechat-tool.mjs:205
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner flagged a URL being built dynamically. The code simply chooses where to send image requests by checking user-provided settings, then an environment variable, then a safe local default address. Everything goes to the local bridge the user configured, which is exactly what this Zapier integration is supposed to do.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The signal fires on line 50 where the bridge URL is resolved from input, auth data, an environment variable, and a default of the local loopback address on port 8787. The constructed URL is used for an HTTP POST to the local Remix.Camera bridge, which is the core purpose of this Zapier adapter. The default destination is a localhost bridge and the URL is user-configurable through visible input fields and authentication settings. No hidden or external endpoint is introduced. This is normal configuration-driven network access for a connector app.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/zapier/remix-camera-zapier-app/index.cjs:50
JavaScript analysis reported javascript.xray.encoded-literal
Expected behavior · high confidence
The test checks that an image returned by the server is actually a JPEG by looking at its first few bytes. The flagged text is just the standard JPEG file signature, not anything hidden or suspicious.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.encoded-literal. The match applies to this repository.
Contextual assessment: The flagged literal is the hex string ffd8ff, which is the JPEG file magic byte signature. The test assertion verifies that an image response returned by the bridge begins with valid JPEG headers. This is a content-type validation check in a test file, not encoded or obfuscated data concealing behavior.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.encoded-literal
- File role
- production
- Source
- bridge/server.node-test.mjs:957
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The script passes its environment variables to a local helper process it starts. This is a normal way to configure a child process and does not involve any suspicious links.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged line spreads the parent process environment into a locally spawned bridge child process. This is a standard pattern for passing configuration to a child process running within the same package. The environment includes bridge-specific overrides for host, port, and allowed origins bound to loopback. No external or suspicious destination is involved.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- tooling
- Source
- scripts/verify-telegram-live-demo.mjs:107
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
This is a developer tool that sends demo images to messaging platforms the developer has configured. It uses the developer's own platform credentials to post to those same platforms, which is exactly what the tool is for. No credentials are sent anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: This is a tooling-only demo recording script. It reads the user's own messaging platform credentials from environment variables and uses them to post demo content to those same platforms via their official APIs. The credential-to-network correlation is real but legitimate: Telegram tokens go to Telegram, Discord webhook URLs go to Discord, Slack tokens go to Slack, and so on for each target. No credentials are sent to any third party or unexpected destination. The paired config file read only retrieves profileId and characterName, not credentials. This matches the project's stated purpose of recording and delivering demo output across multiple messaging targets.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- tooling
- Source
- scripts/record-messaging-demo.mjs:461-506
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
This is a helper script that registers Discord bot commands. It reads the bot token and app ID from your computer's environment variables, which is the normal way to pass credentials to a command-line tool. Nothing suspicious is happening here.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The scanner flagged reading process environment variables. This file is a Discord slash-command registration CLI script that reads three environment variables for the bot token, application ID, and optional guild ID. Reading credentials from the local environment is the standard and expected pattern for a bot setup utility; the values are not serialized, logged, or sent to any unexpected destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/discord/register-commands.mjs:4
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The script reads configuration from environment variables, which is standard practice for a command-line tool. No sensitive data is being sent anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The signal reflects multiple reads of process.env for CLI configuration such as output directory, bridge port, command text, and Telegram credentials. This is expected behavior for a command-line tooling script. The environment values are used locally for demo configuration and are not serialized to an external destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- tooling
- Source
- scripts/verify-telegram-live-demo.mjs:29
JavaScript analysis reported javascript.xray.data-exfiltration
Expected behavior · high confidence
The bridge reads your saved login token from a local file and uses it to talk to the Remix.Camera service, which is exactly what it is supposed to do. No evidence was found of data being sent to any unexpected place.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.data-exfiltration. The match applies to this repository.
Contextual assessment: The data-exfiltration signal is likely triggered by the combination of file reading and network-capable imports in the bridge server. The bridge reads a local config file to load a session token and API base URL, then uses those credentials to call the Remix.Camera API. This is the explicitly stated purpose of the bridge per the project README, which describes storing the session token server-side and calling the Remix.Camera API. The API base URL defaults to the Remix.Camera service. No evidence in the supplied source shows credentials or user data being sent to any destination other than the configured Remix.Camera API. The telemetry client is initialized with the same API base URL and is described as anonymous and opt-out in the README.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.data-exfiltration
- File role
- production
- Source
- bridge/server.mjs:5
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The Matrix bot reads its access token and homeserver URL from environment variables and uses them only to connect to the Matrix server. This is normal for a Matrix bot adapter.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal fires on multiple process.env reads for MATRIX_HOMESERVER_URL, MATRIX_ACCESS_TOKEN, REMIX_BRIDGE_URL, MATRIX_ROOM_ID, and related configuration. The access token is used only for Matrix sync API calls to the configured homeserver. The bridge URL defaults to localhost. No credentials are sent to any destination other than the Matrix homeserver and the local bridge.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/matrix/lily-sync-bot.mjs:10
Credential access and network transmission in one file
Expected behavior · high confidence
The scanner flagged environment variables being sent over the network. In this case, the values are configuration settings sent to the project's own local bridge service, not secret credentials sent to an external server.
Technical evidence
Scanner reason: A credential source and an outbound network operation were detected in the same file.
Contextual assessment: The credential-to-network correlation is between environment variables (bridge URL, profile ID, character name, visual identity) and a fetch call to the local bridge at 127.0.0.1:8787. The variables read are non-secret configuration values. The README describes the local bridge architecture where the bridge holds the session token server-side and adapters communicate with it over localhost. The flowiseCustomToolSnippet is a template string for Flowise integration that replicates the same local-bridge call pattern.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- tavernkeeper 5
- Rule
- credential-exfiltration
- File role
- production
- Source
- adapters/flowise/remix-camera-flowise-tool.js:51
Credential access and network transmission in one file
Expected behavior · high confidence
The verification script uses a test API key to authenticate against your own local bridge service. Because the key and the network request are in the same file, the scanner flagged it, but the key only goes to a service running on your own machine for testing purposes.
Technical evidence
Scanner reason: A credential source and an outbound network operation were detected in the same file.
Contextual assessment: This tooling-only script reads an action API key from a process environment variable and transmits it as a Bearer token to a user-configured bridge URL that defaults to localhost. The credential and network sink appear in the same file because the script deliberately authenticates against the user's own local bridge to test the ChatGPT Actions dry-run endpoint. The destination is user-controlled local infrastructure, not a third party. No credential is sent to an external, hidden, or unexpected destination. This is an expected authenticated test pattern for a verification tool.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- tavernkeeper 5
- Rule
- credential-exfiltration
- File role
- tooling
- Source
- scripts/verify-adapter-demos.mjs:677
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code connects to a program running on your own computer, which is exactly what the project says it does. No secret data is sent there.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged literal is a default bridge URL pointing to localhost (127.0.0.1:8787), which matches the project's stated architecture of a local Node.js bridge. The client normalizes the URL, validates commands against a known allowlist, validates actions, and POSTs JSON to that local endpoint. No credentials are sent to this URL; only command input is transmitted. This is the expected bridge-client pattern for the project.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/shared/bridge-client.mjs:3
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged values are a character profile ID and a local address. Neither is a secret, and both match the project's design.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged literals include a hardcoded profile ID (a public character identifier) and a default localhost bridge URL (127.0.0.1:8787). The profile ID is a non-secret reference to a Remix.Camera character profile. The bridge URL is the expected local bridge destination. Neither is a credential or an obfuscated external endpoint.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/slack/lily-slash-command-server.mjs:13
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The MCP server reads non-sensitive configuration from environment variables to know where the local bridge is running. No credentials are involved.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal fires on process.env reads for REMIX_BRIDGE_URL, REMIX_PROFILE_ID, and REMIX_CHARACTER_NAME in the callMcpTool function defaults and CLI argument parsing. None of these are credentials. The bridge URL defaults to localhost. The MCP server is a stdio-based JSON-RPC server that forwards tool calls to the local bridge. No sensitive data is handled or exfiltrated.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/mcp/remix-camera-mcp-server.mjs:142
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code reads Slack credentials and settings from environment variables. The signing secret is used to verify that requests really come from Slack, and the bot token is used to send messages back through Slack. This is how Slack bots are supposed to work.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The scanner flags multiple process.env reads: SLACK_SIGNING_SECRET, SLACK_BOT_TOKEN, REMIX_BRIDGE_URL, REMIX_PROFILE_ID, REMIX_CHARACTER_NAME, REMIX_CHARACTER_VISUAL_IDENTITY, REMIX_PRIVATE_SNAP_TTL_SECONDS, PORT, and SLACK_COMMAND_PORT. The signing secret is used solely for verifying inbound Slack request signatures (line 91) and is never transmitted externally. The bot token is passed to the Slack tool for authenticated Slack API calls, which is the intended purpose. The remaining values are non-secret configuration. All usage is proportional to the stated purpose of a Slack slash-command server.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/slack/lily-slash-command-server.mjs:11
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code reads setup options from environment variables, which is a normal way for a local server to find its port and service address. Nothing is sent anywhere or stolen.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The signal flags process.env usage. The supplied source reads PORT, KAKAO_PORT, REMIX_BRIDGE_URL, and LILY_CHARACTER_NAME from the environment to configure a local skill server. These are standard runtime configuration values with safe defaults. No environment data is serialized, transmitted, logged, or written to disk. The values are used only to set a listen port, a bridge endpoint, and a display name. This is normal configuration behavior for a local Node server adapter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/kakao/lily-skill-server.mjs:5
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
This adapter reads API credentials from environment variables to talk to the Nomi companion service, which is exactly what it is supposed to do. The credentials go only to the official Nomi API and are not sent anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal fires because the Nomi adapter reads several process.env values for configuration. Examining the data flow, the environment variables consumed are NOMI_API_BASE_URL, NOMI_API_KEY, NOMI_UUID, NOMI_ROOM_UUID, and NOMI_REQUEST_NOMI_UUID. These are used as fallbacks for user-supplied input and are sent only to the Nomi API endpoint declared as a constant at the top of the file, authenticated via a Bearer header. This is the expected and proportional credential handling for an adapter whose stated purpose is calling the Nomi chat API. No environment data is sent to unexpected destinations, logged, or persisted beyond the API call. The secret redaction markers confirm the scanner and evidence pipeline treated the key material as redacted, not exfiltrated.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/nomi/remix-camera-nomi-tool.mjs:69
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
The test script needs your API key to verify the bridge works, and it only sends requests to the local bridge running on your own machine. No credentials are sent anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: This is an end-to-end test harness that reads REMIX_API_KEY from the environment and spawns a local bridge process on 127.0.0.1. The credential is passed to the child process through the inherited environment so the bridge can authenticate with the Remix.Camera API, which matches the project purpose. All fetch calls target localhost endpoints on the spawned bridge. There is no evidence of the credential being sent to any external or unexpected destination. The correlation between credential access and a network sink is incidental to the test design.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- production
- Source
- bridge/live-e2e.mjs:100-149
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
The script reads a test API key from your environment and sends it to your own local bridge service to verify that authenticated requests work correctly. This is a normal testing pattern, not credential theft. The key goes to a service you run on your own machine.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: This is a tooling-only verification script. It reads an action API key from a process environment variable and sends it as a Bearer token in an Authorization header to a user-configured bridge URL that defaults to localhost port 8787. This is an intentional authentication test for the ChatGPT Actions dry-run route on the user's own local bridge. The credential destination is the user's own infrastructure, not a third-party or hidden endpoint. There is no exfiltration, no unexpected destination, and no obfuscation. The same-file correlation between credential access and a network sink is expected for an authenticated test call.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- tooling
- Source
- scripts/verify-adapter-demos.mjs:677-996
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged link is just the local address of the bridge server and an example placeholder for setting up a webhook. Nothing suspicious is going on here.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal corresponds to the default local loopback bridge URL and the example webhook host printed in a console message. Both are standard configuration defaults for a webhook server. No external or concealed endpoint is contacted. The bridge URL is user-configurable and defaults to localhost, matching the project purpose.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/viber/lily-webhook-server.mjs:6
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The scanner flagged a suspicious link, but the code at that location is just a plain word in a list of words used for filtering chat text. There is no link or network address there.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged a shady-link signal at line 232, but the supplied source context shows line 232 is a string literal inside a Set of prompt-template noise tokens. No URL, endpoint, or network destination is present at this location. The signal is a static-analysis false positive on ordinary string data.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- bridge/server.mjs:232
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code reads a Telegram bot token and uses it to communicate with Telegram's official API. This is exactly what a Telegram bot is supposed to do.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged literal on line 18 is the process.env.TELEGRAM_BOT_TOKEN read. The bot token is used in the telegramJson function (line 124) to authenticate calls to the Telegram Bot API (api.telegram.org). This is the standard and intended use of a Telegram bot token: making authenticated API calls to Telegram's official endpoint to poll for updates and send messages. No token is sent to any non-Telegram destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/telegram/lily-bot.mjs:18
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The server reads its configuration and credentials from environment variables, which is standard practice. The secrets are used to verify incoming messages and call the Zalo messaging API as intended.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal is triggered by process.env reads for port, bridge URL, Zalo access token, app secret, and character name. These are standard configuration variables for a Zalo webhook server. The app secret is used for HMAC verification of incoming webhook payloads, and the access token is passed to the Zalo tool module for outbound API calls. No credentials are transmitted to unexpected destinations.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/zalo/lily-webhook-server.mjs:5
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code connects to the official WhatsApp API and a local helper service. Both are the expected places for this tool to talk to.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged line defines a default Graph API base URL for the WhatsApp Cloud API. This is the standard, legitimate endpoint for WhatsApp Business messaging. The bridge URL defaults to localhost. Both destinations match the stated purpose of a WhatsApp webhook adapter that receives messages and forwards image-generation requests to a local bridge.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/whatsapp/lily-webhook-server.mjs:10
JavaScript analysis reported javascript.xray.data-exfiltration
Expected behavior · high confidence
The code saves and loads image history from a local file and communicates with Telegram and the local bridge. No private data is sent anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.data-exfiltration. The match applies to this repository.
Contextual assessment: The data-exfiltration signal likely arises from the combination of file reads (image context JSON) and network calls (Telegram API, local bridge). The file operations read and write a local JSON file storing recent image context per chat. The network calls go to Telegram's official API and the local bridge. No file contents are sent to unexpected external endpoints. The image URLs stored locally are Remix.Camera generation results that are already hosted on Remix.Camera's infrastructure. This is expected behavior for a Telegram bot adapter with local state persistence.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.data-exfiltration
- File role
- production
- Source
- adapters/telegram/lily-bot.mjs:3
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code reads settings from environment variables, which is a normal way to configure a server. It does not send environment variables or secrets anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal is triggered by multiple reads of process.env for configuration values such as port, bridge URL, auth token, and character name. These are standard environment-based configuration reads for a standalone webhook server. No environment variables are serialized into requests, logged, or transmitted to external endpoints. The auth token is passed only to a local signature verification function and the tool factory.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/viber/lily-webhook-server.mjs:5
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
This is a test file that starts the bridge and a fake API server on the local machine to verify the bridge works correctly. The scanner flagged the network connections in the test code, but they are all connections to local test servers on the same machine. There is nothing suspicious here.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The JS-X-Ray shady-link signal fired on a test harness file that spawns the bridge as a child process and creates a mock Remix.Camera API server bound to 127.0.0.1 on ephemeral ports. The nine occurrences correspond to localhost URL construction and HTTP request patterns used throughout the integration tests. No external or suspicious network destinations are present; all network activity targets local mock servers on loopback addresses. This is standard integration test infrastructure with no security relevance beyond its test scope.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- bridge/server.node-test.mjs:11
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code reads setup values like a character name and profile ID from environment variables. These are not passwords or secret keys, and using them to configure requests is normal.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The scanner flags process.env reads for REMIX_PROFILE_ID, REMIX_CHARACTER_NAME, and REMIX_CHARACTER_VISUAL_IDENTITY. These are non-secret configuration values (a profile identifier, a display name, and a visual description string) used to populate the bridge request body. They are not credentials, API keys, or tokens. The values flow to the local bridge or are used as fallback defaults. This is expected configuration wiring for a framework adapter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/shared/framework-tool-runner.mjs:82
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code checks where to save its config file by looking at a command-line argument or a single environment variable. This is normal configuration behavior, not credential theft.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The flagged line is bridgeConfigPath(), which reads a single environment variable (REMIX_CONFIG_FILE) or a CLI argument to determine the bridge config file path. This is standard configuration lookup, not environment serialization or credential exfiltration. No credentials are serialized or transmitted.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- bin/setup.mjs:136
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged addresses are the local bridge connection and Discord application settings on your own server. The Discord server forwards image requests to your local bridge as designed. No external or suspicious server is contacted.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged links are the default local bridge endpoint at 127.0.0.1 port 8787 and possibly the Discord application configuration. Both match the stated project purpose of running a Discord interactions server that forwards image commands to the local Remix.Camera bridge. The bridge URL is exposed only in the local health endpoint response, which is not sensitive. No external or attacker-controlled destination is present.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/discord/lily-interactions-server.mjs:11
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code reads a few specific configuration values from environment variables, such as the bridge address and character profile settings. These are used to send image requests to your local bridge. The code does not read or leak any secrets or unrelated environment data.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The code reads four specific Remix.Camera and bridge configuration environment variables: REMIX_BRIDGE_URL, REMIX_PROFILE_ID, REMIX_CHARACTER_NAME, and REMIX_CHARACTER_VISUAL_IDENTITY. These are project-specific configuration values used to construct the bridge request body. They are sent only to the local bridge endpoint, which is the stated purpose. The entire process.env object is never serialized or exfiltrated. No credentials, secrets, or unrelated environment variables are accessed or transmitted.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/botpress/remix-camera-botpress-action.js:2
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code reads settings and a Telegram token from environment variables to configure the bot. Each value is used for its intended purpose.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The scanner flags multiple process.env reads including TELEGRAM_BOT_TOKEN, REMIX_BRIDGE_URL, REMIX_CHARACTER_NAME, REMIX_PROFILE_ID, REMIX_API_BASE_URL, TELEGRAM_IMAGE_CONTEXT_FILE, REMIX_CHARACTER_VISUAL_IDENTITY, and TELEGRAM_UPDATE_OFFSET. These are configuration values for running the Telegram bot adapter. The bot token is a credential but is used only for Telegram API authentication. The bridge URL defaults to localhost. The API base URL defaults to the project's own service. All values serve their intended configuration purpose.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/telegram/lily-bot.mjs:17
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The Messenger webhook server reads its credentials from environment variables and uses them only to verify incoming webhooks and call the Facebook Graph API. This is standard practice for a Messenger bot adapter.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal fires on multiple process.env reads for MESSENGER_PAGE_ACCESS_TOKEN, MESSENGER_APP_SECRET, MESSENGER_VERIFY_TOKEN, and related configuration. The page access token is passed only to the Messenger tool constructor for Graph API calls. The app secret is used only for HMAC-SHA256 webhook signature verification. The verify token is compared against an inbound query parameter for webhook subscription confirmation. No credentials are exfiltrated or sent to unexpected destinations.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/messenger/lily-webhook-server.mjs:6
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code contacts a program running on your own computer, which matches how this tool is designed to work. There is no evidence of contact with any suspicious external service.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged line constructs a bridge URL that defaults to a local loopback address on port 8787, consistent with the project purpose of calling a local Node bridge that holds Remix.Camera credentials server-side. The URL can also be overridden by input or runtime args, which is a normal configuration pattern for a local bridge adapter. No external or suspicious destination is present. The scanner signal is a keyword match on the URL literal and does not indicate a harmful destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/anythingllm/remix-camera-companion-images/handler.js:41
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged URL is the project's local bridge on localhost, which is where the MCP server sends its tool execution requests.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal fires on the default local bridge URL used in the function parameter defaults. This is the project's own local bridge component at localhost and is the expected endpoint for the MCP server to communicate with.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/mcp/remix-camera-mcp-server.mjs:142
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The code builds a list of allowed websites that can connect to the local bridge. The listed sites are well-known AI chat platforms and localhost addresses, which matches the project's purpose of supporting multiple chatbot hosts.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged line is inside allowedOriginsForTarget(), which constructs a set of permitted CORS origins. The origins are localhost addresses and well-known AI chat platforms (agnai.chat, typingmind.com, lobehub.com). These are legitimate CORS allowlist entries for a local bridge that supports multiple chatbot targets, matching the project's stated multi-target purpose.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- bin/setup.mjs:166
OpenGrep reported tavernkeeper.credential-exfiltration.javascript-secret-to-network
Expected behavior · high confidence
The bridge stores your Remix.Camera login token on the server side and uses it to fetch generated images from the Remix.Camera service so your browser never sees the token. The code only sends the token to the Remix.Camera API address, which is exactly what the tool is designed to do. This is normal, expected behavior for a local bridge that keeps credentials out of the browser.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.credential-exfiltration.javascript-secret-to-network. The match applies to this repository.
Contextual assessment: The scanner flagged config.sessionToken or config.apiKey reaching a fetch() network sink at line 2070. The code is in serveProxiedImage, which fetches previously generated images from the Remix.Camera API to serve them locally to the browser without exposing credentials client-side. The credential is only attached as a Bearer header when item.sourceUrl.startsWith(config.apiBaseUrl) is true, gating transmission to the configured API base URL. The sourceUrl values originate from Remix.Camera API generation responses via absoluteRemixUrl, not from direct user input. This matches the project's stated purpose of keeping credentials server-side and proxying authenticated image requests through the local bridge.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.credential-exfiltration.javascript-secret-to-network
- File role
- production
- Source
- bridge/server.mjs:2070
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged code just checks whether local ports are available by briefly opening a listener on localhost, then closing it. This is normal test infrastructure behavior.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged line is a TCP server binding to 127.0.0.1 to check whether local ports are free before starting E2E test processes. This is a standard localhost port-availability check inside a tooling-only script and involves no external network access or suspicious destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- tooling
- Source
- scripts/verify-sillytavern-browser-e2e.mjs:362
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged link is the default address of a local helper program running on your own machine. The extension sends image requests to this helper, which contacts the image service for you. This is the intended design and the address is adjustable in the settings.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged line 24 as a shady-link signal. The flagged content is a default configuration value for a localhost bridge endpoint at 127.0.0.1 port 8787. The extension uses bridgeFetch with this URL to communicate with a local companion bridge that holds the session token and proxies calls to the Remix.Camera API. This matches the project's stated architecture. The bridgeUrl is user-configurable and the plain HTTP scheme is appropriate for a loopback address. No data flows to an unexpected or concealed remote destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- index.js:24
OpenGrep reported tavernkeeper.credential-exfiltration.javascript-secret-to-network
Expected behavior · high confidence
When a Discord bot interaction fails, the code sends an error message back to the same Discord conversation using a token Discord provided for that single reply. This is the normal way Discord bots respond to interactions, not a credential being stolen or sent somewhere unexpected.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.credential-exfiltration.javascript-secret-to-network. The match applies to this repository.
Contextual assessment: The scanner matched a credential-to-network rule on the error handler that passes interaction.token to tool.send(). The interaction token is a per-interaction, ephemeral authorization token that Discord includes in every interaction payload specifically so the bot can post follow-up responses. It is not the bot secret token or a persistent API key, and the destination is the Discord interactions follow-up endpoint for that same interaction. This is the standard Discord interactions response pattern. No secret credential is routed to an unauthorized destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.credential-exfiltration.javascript-secret-to-network
- File role
- production
- Source
- adapters/discord/lily-interactions-server.mjs:57-64
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
The bridge reads its own login credentials and sends them to the Remix.Camera service it is designed to talk to. This is exactly what the tool is supposed to do, not a security problem.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: The scanner correlated credential-bearing state with an outbound network sink. The supplied code reads apiKey and sessionToken from environment variables and a local config file, then uses them to authenticate requests to the project's own stated API base URL (remix.camera). This matches the bridge's stated purpose of calling the Remix.Camera API with stored credentials without exposing them to the browser. No evidence shows credentials being sent to any third-party or unexpected destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- production
- Source
- bridge/server.mjs:245-1507
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged link is just the default local bridge address on the user's own machine. The Pipedream action uses it to talk to the local Remix.Camera bridge, which is the intended design.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal fires on the default bridge URL string, which is a loopback address on port 8787. This is the local bridge endpoint described in the project README as the server-side component that holds the Remix.Camera session token. The Pipedream action passes user-configurable properties to the shared automation bridge runner, which calls that local bridge. No hardcoded external or suspicious destination is present. The localhost default is proportional and expected for an adapter designed to route through a local bridge rather than embedding credentials in the browser or cloud action.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/pipedream/remix-camera-pipedream-action.mjs:18
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged link is the default local bridge address on the user's own machine. The RisuAI plugin uses it to communicate with the local Remix.Camera bridge, which is the intended design.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal fires on the cleanUrl helper which defaults to a loopback address on port 8787 when no user-configured bridge URL is provided. The RisuAI adapter uses the host platform's nativeFetch to call the local Remix.Camera bridge endpoint, passing tool content and character configuration. No hardcoded external or suspicious destination exists. The loopback default matches the project architecture where a local Node bridge holds the session token and proxies API calls. The update URL annotation at the top of the file points to the project's own GitHub repository for plugin updates, which is standard for RisuAI plugins.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/risu/remix-camera-companion-images.risu.js:123
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged address is the standard local bridge connection on your computer. The bot action sends image requests to your local bridge as designed. No external or suspicious server is contacted.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged link is the default local bridge endpoint at 127.0.0.1 port 8787, matching the stated project purpose. The bridge URL is configurable via options or environment variable. The action sends image command parameters to this local bridge and returns the response including text and image URLs. No external or attacker-controlled destination is present.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/botpress/remix-camera-botpress-action.js:2
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged link is just the local bridge address on the user's own machine. The project is designed to talk to a local bridge, so this is expected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged a link signal. The only network destination in this file is the local bridge address at loopback port 8787, which matches the project's stated architecture of routing image generation requests through a local Node.js bridge. The bridge URL can be overridden via options or an environment variable, but the default is localhost. No external or unexpected destination is present.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/flowise/remix-camera-flowise-tool.js:2
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The URLs flagged are the official LINE API and the project's own local bridge running on localhost. These are expected destinations for a LINE bot adapter.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal fires on URLs such as the default LINE API base URL and the local bridge URL. Both are legitimate, well-known endpoints for the LINE platform and the project's own local bridge component. No obfuscated or unexpected external endpoints are referenced.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/line/lily-webhook-server.mjs:9
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged link is just a default local address for the project's own bridge service. It is ordinary configuration, not a suspicious external destination.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The signal flags a link in the source. The only URL present near the flagged area is the default bridge endpoint on localhost, used as a fallback when no environment override is provided. The project purpose describes a local bridge running at that address. The URL is not exfiltrated, is not an external suspicious destination, and serves as expected default configuration for the adapter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/kakao/lily-skill-server.mjs:6
OpenGrep reported tavernkeeper.credential-exfiltration.javascript-secret-to-network
Expected behavior · high confidence
The bot token is sent to Discord's official API to register slash commands. This is the normal and expected way Discord bots work.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.credential-exfiltration.javascript-secret-to-network. The match applies to this repository.
Contextual assessment: The credential (bot token from process.env.DISCORD_BOT_TOKEN) reaches a network sink, but the sink is the official Discord API at discord.com/api/v10. The fetch call uses the token as a Bearer-style Authorization header for a PUT request that registers application or guild slash commands. This is the documented Discord command-registration flow and the proportionate, intended use of the token.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.credential-exfiltration.javascript-secret-to-network
- File role
- production
- Source
- adapters/discord/register-commands.mjs:18-25
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The program reads its settings and secrets from environment variables, which is a normal and safe way to configure a server. The credentials are used only for their intended WhatsApp messaging purpose.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal is triggered by multiple process.env reads for WHATSAPP_ACCESS_TOKEN, WHATSAPP_PHONE_NUMBER_ID, WHATSAPP_VERIFY_TOKEN, and bridge/profile configuration. These are standard environment-based configuration reads. The access token is passed to the WhatsApp tool module for outbound WhatsApp API calls, which is the expected data flow. No credentials are sent to any unexpected or unlisted destination.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/whatsapp/lily-webhook-server.mjs:6
JavaScript analysis reported javascript.download-to-execution
Expected behavior · high confidence
The code sends a request to the local bridge and uses the reply as text data. It does not run or execute anything downloaded from the network. The scanner warning is a false alarm.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.download-to-execution
- File role
- production
- Source
- adapters/anythingllm/remix-camera-companion-images/handler.js:66-82
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
The script uses Telegram bot credentials to send demo messages through Telegram's own API, which is exactly what those credentials are for. This only happens when the user explicitly enables it.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: The script reads Telegram bot token and chat ID from environment variables and, only when explicitly enabled by flags, passes them to helper functions that send messages via the Telegram Bot API. The network sinks are fetch calls to a local loopback bridge health endpoint and the Telegram API for message delivery. This is the legitimate and expected use of Telegram bot credentials in a Telegram demo verification tool. Sending is guarded by explicit opt-in flags and presence checks.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- tooling
- Source
- scripts/verify-telegram-live-demo.mjs:39-143
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code reads specific settings from environment variables to configure the Discord server and local bridge connection, such as port numbers, character profile settings, and Discord application keys for verifying incoming requests. It does not read or leak any secrets or unrelated environment data to outside parties.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The code reads specific environment variables for server configuration: DISCORD_PUBLIC_KEY, DISCORD_APPLICATION_ID, REMIX_BRIDGE_URL, REMIX_PROFILE_ID, REMIX_CHARACTER_NAME, REMIX_CHARACTER_VISUAL_IDENTITY, REMIX_PRIVATE_SNAP_TTL_SECONDS, PORT, and DISCORD_INTERACTIONS_PORT. These are all legitimate configuration values needed to run a Discord interactions server and connect to the local bridge. The process.env object is never serialized wholesale. The DISCORD_PUBLIC_KEY is used only for signature verification, not transmitted anywhere. The bridge URL appears in a local health response and console log, neither of which is an exfiltration path. No credentials or unrelated environment variables are leaked to external destinations.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/discord/lily-interactions-server.mjs:9
Credential access and network transmission in one file
Expected behavior · high confidence
The scanner noticed a credential being sent over the network in the same file. In this case the credential is a Discord bot token and it goes to Discord's own API, which is what it is designed for.
Technical evidence
Scanner reason: A credential source and an outbound network operation were detected in the same file.
Contextual assessment: The same-file correlation of a credential source and outbound network sink is present, but the data flow is the bot token traveling to the official Discord API endpoint for slash-command registration. The destination, timing (CLI execution), and purpose all match the project's stated Discord adapter functionality. There is no evidence of token redirection to unauthorized endpoints or concealment.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- tavernkeeper 5
- Rule
- credential-exfiltration
- File role
- production
- Source
- adapters/discord/register-commands.mjs:18
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
The bot token is sent to Telegram's official API address to authenticate the bot. This is the normal way Telegram bots work and the token does not go anywhere else.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: The scanner correlates the TELEGRAM_BOT_TOKEN credential read (line 18) with the fetch call to api.telegram.org (line 124). The bot token is embedded in the Telegram API URL path, which is the standard authentication mechanism for the Telegram Bot API. The destination is Telegram's official, well-known API endpoint. No other credentials are transmitted to this endpoint. The local bridge calls go to localhost. This is the expected and correct pattern for a Telegram bot.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- production
- Source
- adapters/telegram/lily-bot.mjs:18-124
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code checks environment variables only to see if the user has opted out of anonymous install tracking. It does not collect or send any sensitive information from the environment. The tracking data is limited to a random ID and basic install metadata, exactly as described in the project documentation.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The flagged function accepts an env parameter defaulting to process.env, a standard testability pattern. It reads only two specific variables (DO_NOT_TRACK and REMIX_TELEMETRY_DISABLED) to determine whether telemetry is opted out. No environment contents are serialized, logged, or transmitted. The telemetry client transmits only a random installation UUID, event name, install source label, target, and package version. This matches the README disclosure exactly, including the disable mechanisms and data retention policy. No credential-bearing variables are accessed.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- lib/install-telemetry.mjs:35
JavaScript analysis reported javascript.xray.unsafe-regex
Expected behavior · high confidence
The scanner flagged a potentially dangerous regular expression, but the pattern is a simple data-URL parser with no risk of performance attacks. It is used to decode uploaded reference photos.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The scanner flagged an unsafe-regex signal at line 1538. The supplied code shows a data-URL parsing regex with simple alternation and a single trailing capture group using the dotAll flag. The pattern lacks nested quantifiers or ambiguous alternation that would cause catastrophic backtracking, so it is not vulnerable to ReDoS in practice. This is a standard data-URL parser used for decoding user reference images.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.unsafe-regex
- File role
- production
- Source
- bridge/server.mjs:1538
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged links are just the local helper service address and a sample placeholder URL shown to the user for setup. Nothing suspicious is happening.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal is triggered by references to localhost URLs and a placeholder example URL in a console.log instruction. The bridge URL defaults to localhost and the example URL is a non-functional placeholder showing where to configure the Zalo webhook. No suspicious or unexpected external endpoints are contacted.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/zalo/lily-webhook-server.mjs:6
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
This code reads character profile settings from environment variables and passes them to the local bridge. The values are configuration items like profile ID and character name, not passwords or secret keys.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal fires on process.env access in buildAutomationBridgeInput. The code reads REMIX_PROFILE_ID, REMIX_CHARACTER_NAME, and REMIX_CHARACTER_VISUAL_IDENTITY as fallback configuration values. These are non-secret profile identifiers and character metadata passed to the local bridge via callBridgeCommand. No credentials or secrets are read from the environment in this module. The data flow matches the project's stated purpose of routing image generation requests through a local bridge.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/shared/automation-tool-runner.mjs:30
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The code reads configuration from environment variables, which is normal. The tokens are used only to verify that incoming webhook messages are genuine, not sent anywhere.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal is produced by multiple process.env reads for server configuration including port, bridge URL, access token, webhook token, and character name. These are standard configuration reads for a webhook server. None of these values are serialized into outbound network requests or logged. The webhook token is used solely for signature verification of incoming requests, which is the correct security pattern for validating WeChat webhook callbacks.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/wechat/lily-webhook-server.mjs:5
Credential access and network transmission in one file
Expected behavior · high confidence
The flagged network call is inside a text string meant to be copied by users into another platform, not code that runs automatically. The actual running code only reads non-secret setup values and sends them to the local bridge.
Technical evidence
Scanner reason: A credential source and an outbound network operation were detected in the same file.
Contextual assessment: The scanner correlated process.env reads (REMIX_BRIDGE_URL, REMIX_PROFILE_ID, etc. at lines 2-10) with an axios.post call at line 58. However, line 58 is inside a String.raw template literal (lines 45-63) that exports a code snippet string for users to manually paste into Botpress. It is not executed by this file. The actual executable function (lines 1-43) reads non-secret configuration env vars and sends them to the localhost bridge. The env vars accessed are configuration fields (profile ID, character name, visual identity, bridge URL), not credentials. The session token is managed server-side in the bridge process and is never accessed in this adapter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- tavernkeeper 5
- Rule
- credential-exfiltration
- File role
- production
- Source
- adapters/botpress/remix-camera-botpress-action.js:58
JavaScript analysis reported javascript.xray.data-exfiltration
Expected behavior · high confidence
Detailed wording was omitted by the public report safety filter.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.data-exfiltration. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.data-exfiltration
- File role
- production
- Source
- bin/setup.mjs:5
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
The script uses your Discord bot token to authenticate with Discord's own official API so it can register bot commands. Sending the token to Discord is exactly what this tool is supposed to do, and it goes nowhere else.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: The scanner correlated credential access with an outbound network call. In this file the bot token is read from the environment and sent only as an Authorization header to the official Discord API endpoint for registering application commands. This is the legitimate and sole purpose of the script: authenticating to Discord to register slash commands. The destination matches the stated Discord adapter functionality, and no third-party or unexpected endpoint receives the credential.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- production
- Source
- adapters/discord/register-commands.mjs:5-18
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The scanner flagged code that reads an environment variable. The code reads one specific setting that lets users override the local bridge address. It does not copy or send out any other environment data. This is a normal way for a tool to accept configuration.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The signal fires on line 50 where a single environment variable is read as a fallback for the bridge URL. This is a targeted read of one named configuration variable, not serialization or bulk extraction of the process environment. The value is used solely to determine the local bridge endpoint for the HTTP POST request. No environment contents are logged, transmitted to a third party, or persisted. This is a standard and proportionate use of an environment variable for endpoint configuration in a connector app.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/zapier/remix-camera-zapier-app/index.cjs:50
JavaScript analysis reported javascript.xray.encoded-literal
Expected behavior · high confidence
The flagged hex string is a standard cryptographic header used to verify that Discord webhook requests are authentic. It is a known constant, not hidden or malicious code.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.encoded-literal. The match applies to this repository.
Contextual assessment: The flagged hex literal at line 187 is the DER-encoded SPKI prefix for Ed25519 public keys (302a300506032b6570032100), used in verifyDiscordSignature to construct a public key object from a raw hex public key. This is a well-known cryptographic constant for Discord interaction signature verification, not obfuscation or encoded malicious content.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.encoded-literal
- File role
- production
- Source
- adapters/discord/remix-discord-tool.mjs:187
OpenGrep reported tavernkeeper.credential-exfiltration.javascript-secret-to-network
Expected behavior · high confidence
The scanner detected that an API key is sent over the network in this file. That is true, but the key is sent only to a local bridge service that the user starts on their own machine, which is the expected way to test authenticated endpoints during verification.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.credential-exfiltration.javascript-secret-to-network. The match applies to this repository.
Contextual assessment: The flagged requestBridge function constructs a fetch call to a bridge URL sourced from a user-provided environment variable or CLI flag, defaulting to localhost. When an action API key is present, it is attached as a Bearer token to test the authenticated ChatGPT Actions route on that same local bridge. The credential source reaches the network sink by design, but the sink is the user's own local infrastructure. There is no evidence of a third-party destination, hardcoded external endpoint, or concealed exfiltration path. This is consistent with the stated purpose of a demo and adapter verification tool.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.credential-exfiltration.javascript-secret-to-network
- File role
- tooling
- Source
- scripts/verify-adapter-demos.mjs:677-684
JavaScript analysis reported javascript.credential-to-network
Expected behavior · high confidence
The test script checks whether you have Remix.Camera credentials configured before running a live test that would spend credits. It only makes network calls to local services on your own machine. The credentials are used for their intended purpose and are not sent anywhere unexpected.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.credential-to-network. The match applies to this repository.
Contextual assessment: The code reads REMIX_SESSION_TOKEN, REMIX_API_KEY, and a local bridge config file to verify that live-mode E2E authentication exists before spending credits. The only fetch sink in the cited range targets localhost health endpoints. Credentials are checked for presence locally and passed to the spawned bridge process, which is the project's stated architecture for calling the Remix.Camera API server-side. No credential values are transmitted to any external or unauthorized destination in this tooling script.
Impact: low · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.credential-to-network
- File role
- tooling
- Source
- scripts/verify-sillytavern-browser-e2e.mjs:309-547
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The test script passes its environment variables to the local bridge process it starts, which is normal for testing. Nothing is being leaked.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal is triggered by the spread of process.env into the spawned child process environment at line 67. This is standard practice for a test harness that needs to propagate configuration to the bridge under test. The environment is passed to a local child process, not serialized for exfiltration. No unexpected data flow is present.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- bridge/live-e2e.mjs:12
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged web address is just the default local bridge connection on your own computer. The tool sends chat context and image requests to your local bridge as described in the project documentation. Nothing is sent to an external or suspicious server.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged link is the default local bridge endpoint at 127.0.0.1 port 8787. The project purpose explicitly states that a local Node.js bridge runs at that address and handles Remix.Camera API calls. The userscript sends chat text, character settings, and image commands only to this user-configurable local bridge. No external or attacker-controlled destination is present. The bridge URL is user-editable via a settings prompt and stored in localStorage. This is the expected adapter pattern for connecting Agnai to the local bridge.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/agnai/remix-camera-agnai.user.js:16
OpenGrep reported tavernkeeper.credential-exfiltration.javascript-secret-to-network
Expected behavior · high confidence
When a Slack command fails, the bot sends an error message back to the Slack channel using Slack's own reply URL and the bot's token. This is the normal way Slack bots respond to commands.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.credential-exfiltration.javascript-secret-to-network. The match applies to this repository.
Contextual assessment: The scanner correlates a credential source (botToken from env, used by the tool object) with a network sink (tool.send called with payload.response_url and payload.channel_id). The response_url is provided by Slack in every slash-command payload and is Slack's own callback endpoint for asynchronous responses. The tool.send method uses the bot token to authenticate with Slack's API to post messages back to the originating Slack channel. This is the standard, documented pattern for responding to Slack slash commands after the initial 200 response. No credentials are sent to the response_url itself; the bot token is used to authenticate against Slack's API. This is expected behavior for a Slack integration.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.credential-exfiltration.javascript-secret-to-network
- File role
- production
- Source
- adapters/slack/lily-slash-command-server.mjs:60-71
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The script reads configuration values like a profile ID and character name from environment variables and sends them to the local bridge. These are not secret credentials, and the data stays on the user's own machine.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The scanner flagged environment variable access. The code reads several environment variables for non-secret configuration: a bridge URL, a profile ID, a character name, and a visual identity string. These are used to populate a request body sent to the local bridge. None of these variables are credentials or session tokens. The request goes to the local bridge endpoint, consistent with the project's stated design of keeping Remix.Camera credentials server-side in the bridge rather than in the browser or adapter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/flowise/remix-camera-flowise-tool.js:2
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged links are just the local server address and an example placeholder for configuring a webhook. There is nothing suspicious here.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal corresponds to the default local loopback bridge URL and an example webhook host string printed to the console. Both are standard configuration defaults and placeholders for a self-hosted webhook server. No hidden or suspicious external endpoint is contacted by the code.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/wechat/lily-webhook-server.mjs:6
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged links are all local addresses pointing to the test bridge on your own machine. There are no suspicious external links.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal appears to be triggered by URL-like string literals in the file. All URLs in this test harness are localhost addresses on 127.0.0.1 used to communicate with the locally spawned bridge. No external or suspicious URLs are present in the supplied source.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- bridge/live-e2e.mjs:35
OpenGrep reported tavernkeeper.credential-exfiltration.javascript-secret-to-network
Expected behavior · high confidence
The security scanner flagged this because a credential and a network call are in the same file, but the network call goes to Telegram's official API using the token as intended. This is normal bot behavior, not credential theft.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.credential-exfiltration.javascript-secret-to-network. The match applies to this repository.
Contextual assessment: The scanner matched because the bot token and a network fetch appear in the same file. The fetch targets the official Telegram API host and uses the token as the required bot authentication path segment. This is the canonical Telegram Bot API calling pattern. No alternative or hidden destination, no logging of the token, and no transmission to any non-Telegram endpoint is present.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- opengrep 1.26.0
- Rule
- tavernkeeper.credential-exfiltration.javascript-secret-to-network
- File role
- production
- Source
- adapters/telegram/lily-bot.mjs:124-130
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged URL is the project's local bridge running on localhost, which is the expected destination for forwarding processed messages.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The shady-link signal fires on a URL in the file, which corresponds to the local bridge default URL. This is the project's own local bridge component and is an expected endpoint for a Matrix bot adapter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- adapters/matrix/lily-sync-bot.mjs:12
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The bridge reads its own settings from environment variables, which is a normal way to configure a local server. It only reads its own named settings, not the entire system environment.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The scanner flagged a serialize-environment signal because the config object reads many process.env values. The supplied code shows reads of specific named REMIX_ environment variables for host, port, API base URL, credentials, model IDs, and feature toggles. This is standard environment-based configuration for a local bridge server, not serialization or exfiltration of the full process environment. No evidence shows the entire environment being captured or transmitted.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- bridge/server.mjs:240
JavaScript analysis reported javascript.xray.shady-link
Expected behavior · high confidence
The flagged code simply defines a default local web address for generating documentation about the project's bridge service. It does not connect to anything or send any data. The address is a standard local-only address used for development.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The flagged line is a function signature with a default parameter baseUrl set to a loopback address. The function generates static OpenAPI and Lobe manifest documents describing local bridge endpoints. All URLs in the file are either loopback defaults, a clearly labeled placeholder example domain, a schema reference, a repository homepage, or a favicon. No network requests are made by this module; it only constructs document objects. The signal is a false positive on a localhost default URL in a document generator.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.shady-link
- File role
- production
- Source
- lib/companion-tools.mjs:208
JavaScript analysis reported javascript.xray.serialize-environment
Expected behavior · high confidence
The adapter reads its Kindroid API key from environment variables and sends it only to the official Kindroid API. This is normal and expected behavior for connecting to an external service.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The serialize-environment signal fires on multiple process.env reads in kindroidInputFromTurn. The code reads KINDROID_API_KEY, KINDROID_API_BASE_URL, and related configuration from environment variables, then uses the API key solely as a Bearer token in Authorization headers sent to the official Kindroid API endpoint. No credentials are logged, serialized to disk, or sent to any destination other than the Kindroid API. This is standard configuration handling for a platform adapter.
Impact: none · Exploitability: unlikely
Developer action: none
- Scanner
- javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
- Rule
- javascript.xray.serialize-environment
- File role
- production
- Source
- adapters/kindroid/remix-camera-kindroid-tool.mjs:72