	if (NODE_VERSION >= 10) {
		it('Dynamic import attack', (done) => {
			process.once('unhandledRejection', (reason) => {
				assert.strictEqual(reason.message, 'process is not defined');
				done();
			});

			const vm2 = new VM();

			vm2.run(`
				(async () => {
					try {
						await import('oops!');
					} catch (ex) {
						// ex is an instance of NodeError which is not proxied;
						const process = ex.constructor.constructor('return process')();
						const require = process.mainModule.require;
						const child_process = require('child_process');
						const output = child_process.execSync('id');
						process.stdout.write(output);
					}
				})();
			`);
		});
	}
The software receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype.