I believe the vulnerability does not affect Ethereum, since adding null-byte padding to the front of anything signed as RLP-data or as an EIP-191 payload, mangles the meaning of its representation.
I didn't get any vulnerabilities installing @openzeppelin/contracts@3.1.0
$ node --version
v12.18.3
$ npm --version
6.14.6
$ npm init -y
...
$ npm i @openzeppelin/contracts
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN David_Schmitz@1.0.0 No description
npm WARN David_Schmitz@1.0.0 No repository field.
+ @openzeppelin/contracts@3.1.0
added 1 package from 1 contributor and audited 1 package in 3.63s
found 0 vulnerabilities
You're right, that doesn't come from /contract but /cli. I had installed the cli before.
Without cli installed, no issue and with cli installed, here's the result:
@openzeppelin/cli@2.8.2
added 770 packages from 462 contributors and audited 770 packages in 52.583s
10 packages are looking for funding
run npm fund for details
found 32 vulnerabilities (5 low, 26 high, 1 critical)
run npm audit fix to fix them, or npm audit for details
npm replicates the same message when I install the contract lib just after.
Nevertheless, there are fewer errors today
Work env: linux ubuntu 20.04.1 - node v12.18.3 - npm 6.14.6