npm / react-dom / 0.0.0-experimental-99c106c4-20261014

react-dom 0.0.0-experimental-99c106c4-20261014

Source
https://github.com/react/react
Commit scanned
99c106c43439 (recorded by npm)
Directory
packages/react-dom (only this part of the repository was scanned)
Compared with
997f52fbb30e (1 signals introduced since)
Files
227 scanned, 0 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 8 info
Scan time
6.0 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 2 of 2 warn and critical signals; 2 demoted to info.
Disclude version
4.0.0
Scanned (UTC)
2026-10-15 01:08

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info critical → info by review dynamic-execution packages/react-dom/src/__tests__/ReactDOMForm-test.js:963:20 new in this release

    `Function(...)` called with a non-literal body (ast pass, confidence 0.75)

              // eslint-disable-next-line no-new-func
              result = Function(action.slice(11))();
            }
          } catch (x) {
    likely benign LLM, confidence 0.85 A test helper that evaluates the body of a 'javascript:' form action via Function(), with the no-new-func lint rule explicitly suppressed.
    Reasoning

    The snippet is inside a test file. The `action.slice(11)` call strips a 'javascript:' prefix (11 characters), so the test is simulating a javascript: URL form action in jsdom. The eslint-disable comment for no-new-func shows the dynamic Function call was deliberate. The code is critical-severity only because the AST pass flags any non-literal Function body. Nothing suggests it runs attacker-controlled input outside the test harness.

  2. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

            'keypress',
            {which: keyCode('X'), char: '\uD83D\uDE0A'},
          ],
        },
  3. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

          eventSimulator: simulateEvent,
          eventSimulatorArgs: ['textInput', {data: '\uD83D\uDE0A'}],
        },
        {
  4. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

                expect(beforeInputEvent.type).toBe('beforeinput');
                expect(beforeInputEvent.data).toBe('\uD83D\uDE0A');
              },
            },
  5. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

                expect(beforeInputEvent.type).toBe('beforeinput');
                expect(beforeInputEvent.data).toBe('\uD83D\uDE0A');
              },
            },
  6. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

                expect(beforeInputEvent.type).toBe('beforeinput');
                expect(beforeInputEvent.data).toBe('\uD83D\uDE0A');
              },
            },
  7. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

                expect(beforeInputEvent.type).toBe('beforeinput');
                expect(beforeInputEvent.data).toBe('\uD83D\uDE0A');
              },
            },
  8. info warn → info by review dynamic-import packages/react-dom/src/test-utils/FizzTestUtils.js:99:7

    `require` called with a non-literal specifier (ast pass, confidence 0.60)

          // $FlowFixMe[unsupported-syntax]
          require(scriptSrc);
        } catch (x) {
          const event = new window.ErrorEvent('error', {error: x});
    likely benign LLM, confidence 0.85 A test-utils function that loads a script with a dynamic require and reports load failures as window error events.
    Reasoning

    This is a React test utility that calls require on a script source inside a try block, and it catches the error to dispatch a window ErrorEvent. The dynamic require is a test-harness mechanism for loading scripts, and the Flow suppression comment shows it was intentional. The snippet shows no network fetch, encoding, or obfuscation.

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.0.0
git clone https://github.com/react/react react && cd react
git checkout 99c106c43439ad7af05d42f66582d8d05190e9ff
disclude scan --severity info --diff 997f52fbb30ec4b777b66edcdd75f594d9fe0c55 packages/react-dom