mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 13:21:46 +00:00
fix(ssrf): relax internal network resolution (#947)
This commit is contained in:
@@ -66,8 +66,7 @@ export async function checkSsrf(rawUrl: string, bypassInternalIpAllowed: boolean
|
|||||||
|
|
||||||
const hostname = url.hostname.toLowerCase();
|
const hostname = url.hostname.toLowerCase();
|
||||||
|
|
||||||
// Block internal hostname suffixes (no override — these are too easy to abuse)
|
if (isInternalHostname(hostname) && hostname !== 'localhost' && !ALLOW_INTERNAL_NETWORK) {
|
||||||
if (isInternalHostname(hostname) && hostname !== 'localhost') {
|
|
||||||
return { allowed: false, isPrivate: false, error: 'Requests to .local/.internal domains are not allowed' };
|
return { allowed: false, isPrivate: false, error: 'Requests to .local/.internal domains are not allowed' };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +79,7 @@ export async function checkSsrf(rawUrl: string, bypassInternalIpAllowed: boolean
|
|||||||
return { allowed: false, isPrivate: false, error: 'Could not resolve hostname' };
|
return { allowed: false, isPrivate: false, error: 'Could not resolve hostname' };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isAlwaysBlocked(resolvedIp)) {
|
if (isAlwaysBlocked(resolvedIp) && !ALLOW_INTERNAL_NETWORK) {
|
||||||
return {
|
return {
|
||||||
allowed: false,
|
allowed: false,
|
||||||
isPrivate: true,
|
isPrivate: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user