CVE-2023-38704: import-in-the-middle allows unsanitized user controlled input in module generation

Published Aug 7, 2023
·
Updated

Impact The import-in-the-middle loader works by generating a wrapper module on the fly. The wrapper uses the module specifier to load the original module and add some wrapping code. It allows for remote code execution in cases where an application passes user-supplied input directly to an import() function.

Patches This vulnerability has been patched in import-in-the-middle version 1.4.2

Workarounds Do not pass any user-supplied input to import(). Instead, verify it against a set of allowed values. If using import-in-the-middle and support for EcmaScript Modules is not needed, ensure that none of the following options are set (either via command-line or the NODEOPTIONS environment variable): --loader=import-in-the-middle/hook.mjs --loader import-in-the-middle/hook.mjs

References If you have any questions or comments about this advisory, email us at security@datadoghq.com

Other sources

import-in-the-middle is a module loading interceptor specifically for ESM modules. The import-in-the-middle loader works by generating a wrapper module on the fly. The wrapper uses the module specifier to load the original module and add some wrapping code. Prior to version 1.4.2, it allows for remote code execution in cases where an application passes user-supplied input directly to the import() function. This vulnerability has been patched in import-in-the-middle version 1.4.2.

Some workarounds are available. Do not pass any user-supplied input to import(). Instead, verify it against a set of allowed values. If using import-in-the-middle, directly or indirectly, and support for EcmaScript Modules is not needed, ensure that no options are set, either via command-line or the NODEOPTIONS environment variable, that would enable loader hooks.

Affected Software

2 affected componentsFixes available
npm/import-in-the-middle<=1.4.1
1.4.2
datadoghq Import-in-the-middle Node.js<1.4.2

Event History

Aug 7, 2023
CVE Published
via MITRE·07:24 PM
Data Sourced
via MITRE·07:24 PM
DescriptionSeverityWeakness
Aug 8, 2023
Advisory Published
07:26 PM
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is CVE-2023-38704?

CVE-2023-38704 is a vulnerability in import-in-the-middle, a module loading interceptor for ESM modules.

2

What is the impact of CVE-2023-38704?

The impact of CVE-2023-38704 is remote code execution when an application passes user-supplied input directly to an import statement.

3

What is the severity of CVE-2023-38704?

The severity of CVE-2023-38704 is critical with a CVSS score of 9.8.

4

Which software is affected by CVE-2023-38704?

The affected software is import-in-the-middle version 1.4.2 and below for Node.js and npm/import-in-the-middle version 1.4.1.

5

How can CVE-2023-38704 be fixed?

To fix CVE-2023-38704, update import-in-the-middle to version 1.4.3 or later for Node.js, and update npm/import-in-the-middle to version 1.4.2 or later.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203