memory-journal-mcp 3.1.2 β†’ 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -184,27 +184,33 @@ jobs:
184
184
  docker images local-scan:latest
185
185
  echo "πŸ” Running Docker Scout security scan for local-scan:latest"
186
186
 
187
+ # Define CVEs to ignore (upstream issues with NO fix available)
188
+ # CVE-2026-22184: Alpine zlib - no fix version released yet
189
+ # CVE-2019-10790: protobufjs taffydb - unmaintained/abandoned package
190
+ IGNORE_CVES="CVE-2026-22184|CVE-2019-10790"
191
+
187
192
  echo "⏱️ Running Docker Scout scan (max 8 minutes)..."
188
193
  if timeout 480 docker scout cves local-scan:latest > scout_output.txt 2>&1; then
189
194
  echo "πŸ“Š Scan completed successfully"
190
195
  cat scout_output.txt
191
196
 
192
- # Check if critical or high vulnerabilities are present in the output
193
- # Look for non-zero counts in CRITICAL or HIGH columns (format: "1C" or "2H")
194
- if grep -E "^\s+[1-9][0-9]*C\s+" scout_output.txt > /dev/null; then
195
- echo "❌ Critical severity vulnerabilities detected"
197
+ # Filter out ignored CVEs and check remaining for critical/high
198
+ # First, check for any critical CVEs that are NOT in our ignore list
199
+ if grep -E "^[A-Z]" scout_output.txt | grep -vE "$IGNORE_CVES" | grep -q "CRITICAL"; then
200
+ echo "❌ Critical severity vulnerability detected (not in allowlist)"
196
201
  echo "🚨 Build blocked due to unacceptable security risk"
197
202
  exit 1
198
203
  fi
199
204
 
200
- if grep -E "^\s+0C\s+[1-9][0-9]*H\s+" scout_output.txt > /dev/null; then
201
- echo "❌ High severity vulnerabilities detected"
205
+ # Check for any high CVEs that are NOT in our ignore list
206
+ if grep -E "^CVE-" scout_output.txt | grep -vE "$IGNORE_CVES" | grep -q "HIGH"; then
207
+ echo "❌ High severity vulnerability detected (not in allowlist)"
202
208
  echo "🚨 Build blocked due to unacceptable security risk"
203
209
  exit 1
204
- else
205
- echo "βœ… Security scan passed - no critical/high severity vulnerabilities"
206
- echo "ℹ️ Low/medium severity vulnerabilities are acceptable"
207
210
  fi
211
+
212
+ echo "βœ… Security scan passed"
213
+ echo "ℹ️ Any flagged CVEs are either allowlisted (upstream) or low/medium severity"
208
214
  else
209
215
  echo "⚠️ Docker Scout scan timed out or failed"
210
216
  echo "πŸ”„ Continuing build - scan timeout is not a security failure"
package/.scout-ignore ADDED
@@ -0,0 +1,12 @@
1
+ # Docker Scout CVE Ignore File
2
+ # See: https://docs.docker.com/scout/explore/cve-ignorelist/
3
+ #
4
+ # Only include CVEs with NO upstream fix available
5
+
6
+ # Alpine zlib - Critical severity, but NO FIX VERSION RELEASED by Alpine yet
7
+ # We run `apk upgrade --no-cache` but there's nothing to upgrade to
8
+ CVE-2026-22184
9
+
10
+ # protobufjs bundled taffydb - 6+ year old unmaintained package
11
+ # No fix version exists - package is abandoned
12
+ CVE-2019-10790
package/.trivyignore CHANGED
@@ -1,18 +1,19 @@
1
1
  # Trivy Ignore File
2
2
  # See: https://aquasecurity.github.io/trivy/latest/docs/configuration/filtering/
3
3
 
4
- # CVE-2025-64756: glob command injection in npm CLI (HIGH)
5
- # This is in the Node.js base image's npm installation (/usr/local/lib/node_modules/npm)
6
- # We don't use glob CLI directly and cannot patch base image npm
7
- # Will be fixed when Node.js releases updated base images
8
- CVE-2025-64756
4
+ # ============================================================================
5
+ # Alpine Base Image - No upstream fix available
6
+ # ============================================================================
9
7
 
10
- # CVE-2025-5889: brace-expansion ReDoS (LOW)
11
- # Bundled in protobufjs/cli/node_modules - can't override with npm
12
- # LOW severity, attack complexity is high, exploitation is difficult
13
- CVE-2025-5889
8
+ # CVE-2026-22184: zlib vulnerability (CRITICAL)
9
+ # No fix version released by Alpine yet - `apk upgrade` has nothing to update to
10
+ CVE-2026-22184
14
11
 
15
- # CVE-2025-54798: tmp symlink vulnerability (LOW)
16
- # Bundled in protobufjs/cli/node_modules - can't override with npm
17
- # LOW severity, only affects tmp file creation in CLI context
18
- CVE-2025-54798
12
+ # ============================================================================
13
+ # protobufjs Bundled CLI - in /app/node_modules/protobufjs/cli/node_modules/
14
+ # taffydb is 6+ years unmaintained with no fix available
15
+ # ============================================================================
16
+
17
+ # CVE-2019-10790: taffydb prototype pollution (HIGH)
18
+ # No fix version exists - package is abandoned
19
+ CVE-2019-10790
package/DOCKER_README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  # Memory Journal MCP Server
2
2
 
3
- Last Updated January 11, 2026 - v3.1.2
3
+ Last Updated January 11, 2026 - v3.1.3
4
4
 
5
5
  [![GitHub](https://img.shields.io/badge/GitHub-neverinfamous/memory--journal--mcp-blue?logo=github)](https://github.com/neverinfamous/memory-journal-mcp)
6
6
  [![Docker Pulls](https://img.shields.io/docker/pulls/writenotenow/memory-journal-mcp)](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
8
- ![Version](https://img.shields.io/badge/version-v3.1.2-green)
8
+ ![Version](https://img.shields.io/badge/version-v3.1.3-green)
9
9
  ![Status](https://img.shields.io/badge/status-Production%2FStable-brightgreen)
10
10
  [![npm](https://img.shields.io/npm/v/memory-journal-mcp)](https://www.npmjs.com/package/memory-journal-mcp)
11
11
  [![Security](https://img.shields.io/badge/Security-Enhanced-green.svg)](https://github.com/neverinfamous/memory-journal-mcp/blob/main/SECURITY.md)
@@ -342,7 +342,7 @@ docker run -i --rm \
342
342
  - πŸ“‹ **SBOM Available** - Complete software bill of materials
343
343
 
344
344
  **Available Tags:**
345
- - `3.1.2` - Specific version (recommended for production)
345
+ - `3.1.3` - Specific version (recommended for production)
346
346
  - `3.0` - Latest patch in 3.0.x series
347
347
  - `3` - Latest minor in 3.x series
348
348
  - `latest` - Always the newest version
package/Dockerfile CHANGED
@@ -5,14 +5,28 @@ FROM node:24-alpine AS builder
5
5
  WORKDIR /app
6
6
 
7
7
  # Install build dependencies and upgrade packages for security
8
- RUN apk add --no-cache python3 make g++ && apk upgrade --no-cache
8
+ # Use Alpine edge for latest security patches (curl CVE-2025-14524, etc.)
9
+ RUN apk add --no-cache python3 make g++ && \
10
+ apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main curl && \
11
+ apk upgrade --no-cache
12
+
13
+ # Upgrade npm globally to get fixed versions of bundled packages
14
+ # Fixes CVE-2025-64756 (glob) and CVE-2025-64118 (tar)
15
+ RUN npm install -g npm@latest
9
16
 
10
17
  # Copy package files first for better layer caching
11
- COPY package*.json ./
18
+ COPY package*.json .npmrc ./
12
19
 
13
20
  # Install all dependencies (including devDependencies for build)
21
+ # The .npmrc has legacy-peer-deps=true to handle zod peer conflicts
14
22
  RUN npm ci
15
23
 
24
+ # Clean protobufjs bundled cli dependencies and apply overrides
25
+ # This ensures our brace-expansion and tmp overrides take effect
26
+ RUN rm -rf node_modules/protobufjs/cli/node_modules/brace-expansion \
27
+ node_modules/protobufjs/cli/node_modules/tmp && \
28
+ npm dedupe
29
+
16
30
  # Copy source code
17
31
  COPY tsconfig.json ./
18
32
  COPY src/ ./src/
@@ -25,8 +39,11 @@ FROM node:24-alpine
25
39
 
26
40
  WORKDIR /app
27
41
 
28
- # Install runtime dependencies
29
- RUN apk add --no-cache git ca-certificates && apk upgrade --no-cache
42
+ # Install runtime dependencies with security fixes
43
+ # Use Alpine edge for curl with CVE fixes
44
+ RUN apk add --no-cache git ca-certificates && \
45
+ apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main curl && \
46
+ apk upgrade --no-cache
30
47
 
31
48
  # Copy built artifacts and production dependencies
32
49
  COPY --from=builder /app/dist ./dist
@@ -59,6 +76,6 @@ CMD ["node", "dist/cli.js"]
59
76
  # Labels for Docker Hub
60
77
  LABEL maintainer="Adamic.tech"
61
78
  LABEL description="Memory Journal MCP Server - Project context management for AI-assisted development"
62
- LABEL version="3.1.2"
79
+ LABEL version="3.1.3"
63
80
  LABEL org.opencontainers.image.source="https://github.com/neverinfamous/memory-journal-mcp"
64
81
  LABEL io.modelcontextprotocol.server.name="io.github.neverinfamous/memory-journal-mcp"
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Memory Journal MCP Server
2
2
 
3
- Last Updated January 11, 2026 - v3.1.2
3
+ Last Updated January 11, 2026 - v3.1.3
4
4
 
5
5
  <!-- mcp-name: io.github.neverinfamous/memory-journal-mcp -->
6
6
 
@@ -8,7 +8,7 @@ Last Updated January 11, 2026 - v3.1.2
8
8
  [![npm](https://img.shields.io/npm/v/memory-journal-mcp)](https://www.npmjs.com/package/memory-journal-mcp)
9
9
  [![Docker Pulls](https://img.shields.io/docker/pulls/writenotenow/memory-journal-mcp)](https://hub.docker.com/r/writenotenow/memory-journal-mcp)
10
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
11
- ![Version](https://img.shields.io/badge/version-v3.1.2-green)
11
+ ![Version](https://img.shields.io/badge/version-v3.1.3-green)
12
12
  ![Status](https://img.shields.io/badge/status-Production%2FStable-brightgreen)
13
13
  [![MCP Registry](https://img.shields.io/badge/MCP_Registry-Published-green)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)
14
14
  [![Security](https://img.shields.io/badge/Security-Enhanced-green.svg)](SECURITY.md)
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.2
1
+ 3.1.3
package/dist/cli.js CHANGED
@@ -8,7 +8,7 @@ const program = new Command();
8
8
  program
9
9
  .name('memory-journal-mcp')
10
10
  .description('Project context management for AI-assisted development')
11
- .version('3.1.2')
11
+ .version('3.1.3')
12
12
  .option('--transport <type>', 'Transport type: stdio or http', 'stdio')
13
13
  .option('--port <number>', 'HTTP port (for http transport)', '3000')
14
14
  .option('--db <path>', 'Database path', './memory_journal.db')
@@ -62,7 +62,7 @@ export async function createServer(options) {
62
62
  // Create MCP server with capabilities and instructions
63
63
  const server = new McpServer({
64
64
  name: 'memory-journal-mcp',
65
- version: '3.1.2',
65
+ version: '3.1.3',
66
66
  }, {
67
67
  capabilities: {
68
68
  logging: {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memory-journal-mcp",
3
- "version": "3.1.2",
3
+ "version": "3.1.3",
4
4
  "description": "Project context management for AI-assisted development - Persistent knowledge graphs and intelligent context recall across fragmented AI threads",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,58 @@
1
+ # v3.1.3 - Security Fixes for Docker Scout CVEs
2
+
3
+ **Release Date:** January 11, 2026
4
+
5
+ ## Security Fixes
6
+
7
+ ### Docker Image CVE Remediation
8
+
9
+ This release actively fixes several CVEs that Docker Scout flagged:
10
+
11
+ #### npm Global Upgrade
12
+ - **CVE-2025-64756** (glob, HIGH) β€” Fixed by upgrading npm globally in Docker build
13
+ - **CVE-2025-64118** (tar, MEDIUM) β€” Fixed by upgrading npm globally in Docker build
14
+
15
+ #### Alpine Edge Repository
16
+ - **CVE-2025-14524** (curl, MEDIUM) β€” Fixed via Alpine edge: curl 8.18.0-r0
17
+ - **CVE-2025-14819** (curl, MEDIUM) β€” Fixed via Alpine edge: curl 8.18.0-r0
18
+ - **CVE-2025-14017** (curl, N/A) β€” Fixed via Alpine edge: curl 8.18.0-r0
19
+
20
+ #### protobufjs CLI Cleanup
21
+ - **CVE-2025-54798** (tmp, LOW) β€” Fixed by removing bundled protobufjs/cli deps and applying npm overrides
22
+ - **CVE-2025-5889** (brace-expansion, LOW) β€” Fixed by removing bundled protobufjs/cli deps and applying npm overrides
23
+
24
+ ### Remaining Allowlisted CVEs (No Upstream Fix)
25
+
26
+ These CVEs have **no fix available** from upstream:
27
+ - **CVE-2026-22184** (zlib, CRITICAL) β€” Alpine has not released a fix version
28
+ - **CVE-2019-10790** (taffydb, HIGH) β€” Package is 6+ years unmaintained/abandoned
29
+
30
+ ---
31
+
32
+ ## Dockerfile Changes
33
+
34
+ - Added `npm install -g npm@latest` to upgrade bundled npm
35
+ - Added Alpine edge repository for curl security patches
36
+ - Added protobufjs cli cleanup to force npm overrides
37
+ - Copying `.npmrc` into build for consistent dependency resolution
38
+
39
+ ---
40
+
41
+ ## Installation
42
+
43
+ **npm:**
44
+ ```bash
45
+ npm install -g memory-journal-mcp@3.1.3
46
+ ```
47
+
48
+ **Docker:**
49
+ ```bash
50
+ docker pull writenotenow/memory-journal-mcp:3.1.3
51
+ ```
52
+
53
+ ---
54
+
55
+ ## Links
56
+
57
+ - [Full Changelog](https://github.com/neverinfamous/memory-journal-mcp/wiki/CHANGELOG)
58
+ - [v3.1.0 Release Notes](https://github.com/neverinfamous/memory-journal-mcp/releases/tag/v3.1.0)
package/server.json CHANGED
@@ -3,12 +3,12 @@
3
3
  "name": "io.github.neverinfamous/memory-journal-mcp",
4
4
  "title": "Memory Journal MCP",
5
5
  "description": "MCP server– Project memory system with GitHub-aware context, knowledge graphs, and CI/PR timelines",
6
- "version": "3.1.2",
6
+ "version": "3.1.3",
7
7
  "packages": [
8
8
  {
9
9
  "registryType": "oci",
10
- "identifier": "docker.io/writenotenow/memory-journal-mcp:v3.1.2",
11
- "version": "3.1.2",
10
+ "identifier": "docker.io/writenotenow/memory-journal-mcp:v3.1.3",
11
+ "version": "3.1.3",
12
12
  "transport": {
13
13
  "type": "stdio"
14
14
  }
package/src/cli.ts CHANGED
@@ -11,7 +11,7 @@ const program = new Command();
11
11
  program
12
12
  .name('memory-journal-mcp')
13
13
  .description('Project context management for AI-assisted development')
14
- .version('3.1.2')
14
+ .version('3.1.3')
15
15
  .option('--transport <type>', 'Transport type: stdio or http', 'stdio')
16
16
  .option('--port <number>', 'HTTP port (for http transport)', '3000')
17
17
  .option('--db <path>', 'Database path', './memory_journal.db')
@@ -89,7 +89,7 @@ export async function createServer(options: ServerOptions): Promise<void> {
89
89
  const server = new McpServer(
90
90
  {
91
91
  name: 'memory-journal-mcp',
92
- version: '3.1.2',
92
+ version: '3.1.3',
93
93
  },
94
94
  {
95
95
  capabilities: {