Skip to content

ICloud 2FA seems to have broken #221

@diminDDL

Description

@diminDDL

Trying to log in using the Docker method explained in the main readme, I get the following:

025-11-29 00:51:24,353 - INFO - 2FA required, requesting SMS code. (No other 2FA-code will work!)
2025-11-29 00:51:25,264 - INFO - Using phone with id 1 for SMS2FA
Enter SMS 2FA code (If you do not receive a code, wait 60s and press Enter. An attempt will be made to request the SMS in another way.): 
Traceback (most recent call last):
  File "/app/endpoint/mh_endpoint.py", line 177, in <module>
    apple_cryptography.registerDevice()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/app/endpoint/register/apple_cryptography.py", line 71, in registerDevice
    getAuth(regenerate=True)
    ~~~~~~~^^^^^^^^^^^^^^^^^
  File "/app/endpoint/register/apple_cryptography.py", line 44, in getAuth
    mobileme = icloud_login_mobileme(
        username=mh_config.getUser(), password=mh_config.getPass())
  File "/app/endpoint/register/pypush_gsa_icloud.py", line 45, in icloud_login_mobileme
    g = gsa_authenticate(username, password)
  File "/app/endpoint/register/pypush_gsa_icloud.py", line 126, in gsa_authenticate
    sms_second_factor(spd["adsid"], spd["GsIdmsToken"])
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/endpoint/register/pypush_gsa_icloud.py", line 289, in sms_second_factor
    code = request_code(headers)
  File "/app/endpoint/register/pypush_gsa_icloud.py", line 329, in request_code
    req.raise_for_status()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/requests/models.py", line 1026, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 405 Client Error:  for url: https://gsa.apple.com/auth/verify/phone/

I don't receive any 2FA, wait a minute and hit enter and get this error.
Going to the gsa link in a browser gives me a Error code: 403 Forbidden even though I am logged into iCould on this browser.

Trying to log into iCloud on a web browser wile logging the traffic showed that Apple right now seems to do a PUT request to https://idmsa.apple.com/appleauth/auth/verify/phone.
It sends it:
{"phoneNumber":{"id":1},"mode":"sms"}
and then the verification code goes as a POST to https://idmsa.apple.com/appleauth/auth/verify/phone/securitycode
with the following content:
{"phoneNumber":{"id":1,"nonFTEU":true},"securityCode":{"code":"123456"},"mode":"sms"}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions