node-red / node-red/node-red-nodes

Node-red does not run on a FIPS crypto policy enabled OS

Open
#1,049 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
1.1k
Forks
612
Avg merge
13h 57m
Merged PRs (30d)
3

Description

node-red: v3.1.5
node: v18.18.2
OS: Rocky Linux 9.3.
npm version 9.8.1

To reproduce this issue:
Enable FIPS crypto policy, then start node-red.

Fails with the following error:

 - [warn] Error loading flows: Error: error:0308010C:digital envelope routines::unsupported
 - [red] Uncaught Exception:
 - [error] Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at editor (/usr/local/lib/node_modules/node-red/node_modules/@node-red/editor-api/lib/editor/ui.js:102:34)
    at Layer.handle [as handle_request] (/usr/local/lib/node_modules/node-red/node_modules/express/lib/router/layer.js:95:5)
    at next (/usr/local/lib/node_modules/node-red/node_modules/express/lib/router/route.js:144:13)
    at ensureSlash (/usr/local/lib/node_modules/node-red/node_modules/@node-red/editor-api/lib/editor/ui.js:50:13)
    at Layer.handle [as handle_request] (/usr/local/lib/node_modules/node-red/node_modules/express/lib/router/layer.js:95:5)
    at next (/usr/local/lib/node_modules/node-red/node_modules/express/lib/router/route.js:144:13)
    at /usr/local/lib/node_modules/node-red/node_modules/@node-red/editor-api/lib/editor/index.js:39:13
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

This failure is occurring because node-red is using the MD5 hash algorithm which is outdated and non-FIPS compliant.

If I check out the code and fix the issues with the md5 hash, node-red will start up fine, but then I see errors in the node-red-nodes email node with the similar problems.

I have a PR that I would like to submit to fix this issue for both node-red and node-red-nodes email node.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The startup failure points to @node-red/editor-api/lib/editor/ui.js at line 102; reproduce it by starting Node-RED on Rocky Linux 9.3 with FIPS enabled. Trace the similar failure in the node-red-nodes email node, then verify that both Node-RED startup and email-node operation succeed without non-FIPS hash errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
backend, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.