From 3c4157ab8f23e007df575642baa10ca4404ea9ed Mon Sep 17 00:00:00 2001 From: Sarhan Date: Mon, 20 Sep 2021 18:46:42 +0100 Subject: [PATCH] fix(isMagnetURI): prevent matching hashes longer than 40 characters --- src/lib/isMagnetURI.js | 2 +- test/validators.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/isMagnetURI.js b/src/lib/isMagnetURI.js index afe27b623..317cefa82 100644 --- a/src/lib/isMagnetURI.js +++ b/src/lib/isMagnetURI.js @@ -1,6 +1,6 @@ import assertString from './util/assertString'; -const magnetURI = /^magnet:\?xt(\.1)?=urn:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?(?:&.+)?/i; +const magnetURI = /^magnet:\?xt(?:\.1)?=urn:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?(?:&.+)?$/i; export default function isMagnetURI(url) { assertString(url); diff --git a/test/validators.js b/test/validators.js index ba5e68ea9..f60391a7c 100644 --- a/test/validators.js +++ b/test/validators.js @@ -9315,6 +9315,7 @@ describe('Validators', () => { 'magnet:?xt:btih:ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'magnet:?xt:urn:nonexisting:ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234', 'magnet:?xt.2=urn:btih:ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234', + 'magnet:?xt=urn:ed2k:ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890123456789ABCD', ], }); /* eslint-enable max-len */