logo

Database

Dart Io Httpserver Insecure Bind

Description

This vulnerability detector identifies insecure HTTP server binding in Dart applications where servers are bound to all network interfaces (0.0.0.0 or ::), making them accessible from any network rather than just localhost. This creates unnecessary attack surface and potential security risks in production environments.

Weakness:

157 - Unrestricted access between network segments

Category: Access Subversion

Detection Strategy

    • Reports when a Dart HTTP server bind method is called with the first argument being an unsafe binding address

    • Triggers specifically when the dart:io package is imported and HttpServer bind methods are used

    • Flags instances where the binding address argument resolves to all interfaces (like 0.0.0.0 or ::) instead of localhost or specific interfaces

    • Only activates when the code actually calls bind() methods from the imported HttpServer class with potentially dangerous network interface configurations

Vulnerable code example

import 'dart:io';

// VULNERABLE: HTTP server binds to all network interfaces (0.0.0.0)
Future<void> main() async {
  await HttpServer.bind(InternetAddress.anyIPv4, 8080); // Exposes server to entire network
}

✅ Secure code example

import 'dart:io';

// SAFE: HTTP server binds to loopback interface only
Future<void> main() async {
  await HttpServer.bind(InternetAddress.loopbackIPv4, 8080); // Only accessible from localhost
}