T09 · Insecure Skill Coding Practices
- Location
scripts/ddgs_search.py:430- Finding
Arbitrary URL Extraction May Permit Server-Side Request Forgery
- Content
View full analysis
0: if use_signal and threading.current_thread() is threading.main_thread(): signal.signal(signal.SIGALRM, _timeout_handler) signal.alarm(timeout) use_sigalrm = True else: timer = _DeadlineTimer(timeout) timer.start() start = time.time() last_error = None try: for attempt in range(max_retries): try: if timer: timer.check() with DDGS() as d: result = d.extract(url, fmt=fmt) elapsed = time.time() - start return result, elapsed except TimeoutError: raise TimeoutError(f"Extract timed out after {timeout}s") except Exception as e: last_error = e if attempt < max_retries - 1: wait = (2 ** attempt) + random.uniform(0, 1) print(f" Extract retry {attempt+1}/{max_retries}: {e}. " f"Waiting {wait:.1f}s...", file=sys.stderr) time.sleep(wait) raise last_error finally: if use_sigalrm: signal.alarm(0) if timer: timer.cancel() ``` The command-line argument and invocat ...[truncated 3399 chars]- Remediation
View remediation
