Skip to content

fix: add Netflix to LOUD_MODULES (sends verification code to target)#262

Merged
2 commits merged into
kaifcodec:mainfrom
SylvainM98:fix/netflix-loud-module
Mar 4, 2026
Merged

fix: add Netflix to LOUD_MODULES (sends verification code to target)#262
2 commits merged into
kaifcodec:mainfrom
SylvainM98:fix/netflix-loud-module

Conversation

@SylvainM98
Copy link
Copy Markdown
Contributor

@SylvainM98 SylvainM98 commented Mar 2, 2026

Summary

  • Add netflix to the LOUD_MODULES["email"] list in helpers.py
  • The Netflix module uses a CLCSWebInitSignup GraphQL mutation that triggers a real verification code sent to the scanned email address
  • This notifies the target that someone is probing their account, which is the exact behavior the loud module mechanism is designed to prevent

How it was discovered

During testing, each scan triggered an unsolicited Netflix verification code to the target email. The module should be skipped by default (like instagram, leetcode, polarsteps, etc.) and only run when --allow-loud is explicitly passed.

Test plan

  • user-scanner -e test@example.com → Netflix shows [~] Skipped
  • user-scanner -e test@example.com --allow-loud → Netflix runs normally
  • user-scanner -e test@example.com -m netflix → Netflix runs (specific module mode)

The Netflix module (CLCSWebInitSignup GraphQL mutation) triggers a real
verification code sent to the scanned email address. This notifies the
target, so Netflix should be skipped by default like other loud modules.

Discovered during testing: each scan triggered an unsolicited Netflix
verification code to the target email.
@VamatoHD VamatoHD self-requested a review March 2, 2026 21:00
Copy link
Copy Markdown
Collaborator

@VamatoHD VamatoHD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tested this with a used email and did in fact receive an unwanted email.

- Switch to LOGIN node to reduce target notifications
- Fix locale from en-IN to en-US for global compatibility
- Fix session URL from netflix.com/in/ to netflix.com/
- Simplify detection to single reliable marker
- Add GraphQL error guard to prevent false negatives
- Increase timeout from 5s to 10s
@SylvainM98
Copy link
Copy Markdown
Contributor Author

Added a second commit that fixes the Netflix module itself:

  • Switch to LOGIN node (reduces target notifications compared to WELCOME)
  • Fix locale from en-IN to en-US for global compatibility (the module was India-only before)
  • Fix session URL from netflix.com/in/ to netflix.com/
  • Simplify detection to a single reliable marker
  • Add GraphQL error guard to prevent false negatives if the API changes
  • Increase timeout from 5s to 10s for better reliability during concurrent scans

Ready for review.

if '"errors"' in resp_text:
return Result.error("GraphQL error, report it via GitHub issues")

return Result.available(url=show_url)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SylvainM98

I tested it with a registered email address, but it reports the email as not registered. That means the string already have an account you’re expecting in response.text for registered emails isn’t consistently present.

Also, returning Result.available() for all other cases isn’t ideal, it makes the module prone to false negatives.

Try identifying two distinct and reliable keywords in the response body: one that clearly indicates a registered email and another that indicates a non-registered email. Then base the logic strictly on those conditions instead of assuming the fallback case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants