Description
nanoid: custom generators can loop indefinitely when size is zero
nanoid (Nano ID) before 5.1.6 contains an infinite loop in the customAlphabet and customRandom functions. When these functions are configured with a size of 0, the internal generation loop never satisfies its exit condition and spins indefinitely, hanging the calling thread. An application that passes an unvalidated, attacker-controlled size of 0 to these functions is exposed to a denial-of-service condition.
Mitigation
Minimal update. May introduce new vulnerabilities or breaking changes.
|
 debian 11 | | =10.0.0+ds1+~cs28.5.6-1 || =10.0.0+ds1+~cs28.5.6-2 || =10.1.0+ds1+~cs29.3.1-1 || =10.2.0+ds1+~cs29.5.1-1 || =10.4.0+ds1+~cs33.1.8-1 || =10.5.2+ds1+~cs33.1.11-1 || =10.7.2+ds1+~cs33.1.11-1 || =10.7.2+ds1+~cs33.1.11-2 || =11.7.2+ds1+~cs36.3.14-1 || =11.7.2+ds1+~cs36.3.14-2 || =11.7.5+ds1+~cs36.3.14-1 || =11.7.5+ds1+~cs36.3.14-2 || =11.7.5+ds1+~cs36.3.14-3 || =11.7.7+ds1+~cs36.3.16-1 || =8.2.1+ds1+~cs29.4.27-3 || =8.2.1+ds1+~cs29.4.27-3+deb11u1 || =9.0.3+ds1+~cs30.4.31-1 || =9.0.3+ds1+~cs30.4.31-2 || =9.1.0+ds1+~cs30.3.33-1 || =9.1.0+ds1+~cs30.3.33-2 || =9.1.2+ds1+~cs30.3.36-1 || =9.1.3+ds1+~cs31.2.38-1 || =9.1.3+ds1+~cs31.3.39-1 || =9.1.4+ds1+~cs28.2.8-1 || =9.2.0+ds1+~cs28.3.8-1 || =9.2.0+ds1+~cs28.5.4-1 || =9.2.1+ds1+~cs28.3.8-1 || =9.2.2+ds1+~cs28.3.8-1 || =9.2.2+ds1+~cs28.5.6-1 || =9.2.2+ds1+~cs28.5.6-2 | - |
 debian 12 | | >=0 <9.1.4+ds1+~cs28.2.8-1 | 9.1.4+ds1+~cs28.2.8-1 |
 debian 13 | | >=0 <9.1.4+ds1+~cs28.2.8-1 | 9.1.4+ds1+~cs28.2.8-1 |
 debian 14 | | >=0 <9.1.4+ds1+~cs28.2.8-1 | 9.1.4+ds1+~cs28.2.8-1 |
 debian 11 | | =8.2.1+~cs5.3.23-8 || =8.2.1+~cs5.3.23-8+deb11u1 || =8.4.14+~cs8.0.23-1 || =8.4.16+~cs8.0.23-1 || =8.4.17+~cs8.0.23-1 || =8.4.18+~cs8.0.23-1 || =8.4.19+~cs8.0.23-1 || =8.4.20+~cs8.0.23-1 || =8.4.31+~cs8.0.26-1 || =8.4.39+~cs9.2.29-1 || =8.4.49+~cs9.2.32-1 || =8.4.5+~cs7.1.49-1 || =8.4.5+~cs7.1.49-2 || =8.4.5+~cs7.1.51-1 || =8.4.5+~cs7.1.51-2 || =8.4.6+~cs7.3.21-1 || =8.4.7+~cs7.3.21-1 || =8.4.8+~cs7.3.21-1 || =8.4.8+~cs7.3.21-2 || =8.5.12+~cs9.3.32-1 || =8.5.14+~cs9.3.34-1 || =8.5.15+~cs9.3.34-1 || =8.5.15+~cs9.3.38-1 || =8.5.15+~cs9.3.39-1 || =8.5.19+~cs10.2.23-1 || =8.5.21+~cs10.2.23-1 || =8.5.23+~cs10.2.23-1 || =8.5.25+~cs10.2.23-1 || =8.5.6+~cs9.3.28-1 || =8.5.8+~cs9.3.30-1 || =8.5.9+~cs9.3.30-1 | - |
 debian 12 | | =8.4.20+~cs8.0.23-1 || =8.4.20+~cs8.0.23-1+deb12u1 || =8.4.31+~cs8.0.26-1 || =8.4.39+~cs9.2.29-1 || =8.4.49+~cs9.2.32-1 || =8.5.12+~cs9.3.32-1 || =8.5.14+~cs9.3.34-1 || =8.5.15+~cs9.3.34-1 || =8.5.15+~cs9.3.38-1 || =8.5.15+~cs9.3.39-1 || =8.5.19+~cs10.2.23-1 || =8.5.21+~cs10.2.23-1 || =8.5.23+~cs10.2.23-1 || =8.5.25+~cs10.2.23-1 || =8.5.6+~cs9.3.28-1 || =8.5.8+~cs9.3.30-1 || =8.5.9+~cs9.3.30-1 | - |
 debian 13 | | =8.4.49+~cs9.2.32-1 || =8.5.12+~cs9.3.32-1 || =8.5.14+~cs9.3.34-1 || =8.5.15+~cs9.3.34-1 || =8.5.15+~cs9.3.38-1 || =8.5.15+~cs9.3.39-1 || =8.5.19+~cs10.2.23-1 || =8.5.21+~cs10.2.23-1 || =8.5.23+~cs10.2.23-1 || =8.5.25+~cs10.2.23-1 || =8.5.6+~cs9.3.28-1 || =8.5.8+~cs9.3.30-1 || =8.5.9+~cs9.3.30-1 | - |
 debian 14 | | =8.4.49+~cs9.2.32-1 || =8.5.6+~cs9.3.28-1 || >=0 <8.5.8+~cs9.3.30-1 | 8.5.8+~cs9.3.30-1 |
 npm | | >=0 <3.3.17 || >=4.0.0 <5.1.6 | 3.3.17, 5.1.6 |