Author Topic: Urgent Advisory: Yahoo! IM Privacy EXPOSED - EVERYONE IS AFFECTED!  (Read 4065 times)

0 Members and 0 Guests are viewing this topic.

Offline Adam X

  • Developer
  • Administrator
  • 1337
  • *
  • Posts: I am a geek!!
  • "I can hit a target through a telescope!"
  • Location: Ohio
Technical & Implementational Details
« on: April 07, 2011, 09:08:21 am »
Here are the complete technical details (YMSG packets included) concerning this privacy issue

There are 3 online message archive managers/viewers that all work to serve you your archived messages. This takes place over HTTP protocol (SOAP implementation etc). All of these archives can be disabled and as a result they will no longer store your instant messages.

However, since this privacy issue affects the message storage on the [YMSG] CHAT servers directly, the small benefit you receive by disabling your archives (which only applies to the MAIL servers) isn't even worth doing.

The YMSG packet to DISABLE Yahoo! Messenger 11's Conversation History online message archiving feature:

YMSG Service (Packet Type) 0xEF / 239

1Login_ID30231230031231353140301312303312


To ENABLE Yahoo! Messenger 11's Conversation History online message archiving it's the same packet but with a single byte value difference:

1Login_ID30231230031231353141301312303312

This same 0xEF packet is also used in Yahoo!'s Web Messenger (http://web.im) except it's payload key's values are different for disabling and enabling it's own Message History archive.

DISABLING the Message History online message archiving used in Web Messenger & YMSG/HTTP chat protocol implementations:

1^$ Login_ID ^$302^$312^$300^$312^$313^$2^$314^$2^$301^$312^$303^$312^$


ENABLING the Message History online message archiving in Web Messenger & YMSG/HTTP chat protocol implementations:

1^$ Login_ID ^$302^$312^$300^$312^$313^$2^$314^$3^$301^$312^$303^$312^$

*Note the differences within this same packet type, especially where I've bolded, underlined, and italicized the relevant YMSG key/value pairs used*


The Recent Messages YMSG packet, the root of this privacy issue, is used to fetch and view all your instant messages even with all the archives supposedly disabled and with the messages in them supposedly deleted:

YMSG Service (Packet Type) 0x011B / 283

1Your_ID5Users_ID46050

The above Recent Messages packet can be used from ALL YMSG protocol versions and implementations and it will retrieve the instant messages you've requested from your own main id or account aliases for the target username (friend, chat user, whoever). Sending this packet will pull your instant messages directly from the YMSG chat servers, not from the HTTP archive's management location (the mail servers).

You'll realize now that Yahoo! is storing ALL your instant messages, without your knowledge or consent, and without offering you a WORKING way to either delete these stored messages OR a WORKING way to stop the chat servers from continuing to store all your current and future messages.

The bolded 50 value in the Recent Messages packet is the max count (at present) for requesting how many messages to pull from the chat server with your account name (alias or main id) + the target username. If you only want to check 15 or 20 messages then you simply replace the 50 value with 15 or 20, as long as it's at least 1 it'll return the stored message to you.

You can also retrieve your Facebook (if you have your FB account "linked" to your Yahoo! account), MSN/WLM, LCS/Reuters, and IBM Lotus Sametime instant messages as well as your SMS text messages (SMS text message storage currently isn't working but will be at some point in time), even your Pingbox messages (Pingbox message storage currently isn't working but will be at some point in time).

Instead of using a standard Yahoo! username to fetch the messages for a target user you would use the person's mobile phone number, exclusively for SMS Text message retrieval. Also, instead of using a standard Yahoo! username to fetch the messages for a target user you would use the person's Visitor ID number (such as 334 for example), exclusively for Pingbox message retrieval.

An example for US mobile phone number (target user) syntax is --> 1+Area Code+Number together such as "19371234567". Facebook, MSN/WLM, IBM Lotus Sametime, Yahoo! Pingbox, and LCS/Reuters instant messages all have their own network identification key/value pairs which you need to add to the end of the Recent Messages packet in order to retrieve messages from people using these chat networks which you've communicated with.

The Key/Value pairs for network identification of all these interoperable chat networks are listed below:

Microsoft (LCS) Live Communications Server (Reuters Messaging Network) --> 2411

Microsoft Windows Live (MSN) --> 2412

IBM Lotus Sametime --> 2419

Yahoo! Pingbox --> 241100

Facebook Chat --> 24113


Facebook instant messaging over Yahoo! Chat utilizes a user-unfriendly numeric id code which looks like --> -xxxxxxxxx@chat.facebook.com, where the x's are numbers 0-9 for identifying and messaging your specific friends over the bridged chat network. You would use it's unique (listed above) key/value pair at the end of the Recent Messages packet and use their personal numeric id username for retrieving the stored instant messages. From within Yahoo! Messenger 11, you can simply right-click on a friend and view their profile and then obtain their personal numeric id OR just simply open up a PM window with them (press F3 on your keyboard) and you'll see the messages you've sent one another.

Separate records exist for all names on your account that you may have (main id + up to 6 aliases = 7 total) where the message store is independent and based on your account names that you've used to communicate with each person's usernames (which includes their aliases too). I've attempted to max this out (all 50) and request even more messages but the most you'll see is 40-42 if your message storage for that particular user is full. The message count is a combination of messages that you've both received and the messages you've sent to the username. After 40+ messages have been stored the chat servers will start to discard the oldest messages and replace them with any newer messages between you and the user if you've exchanged more instant messages with each other since you last had contact. This behavior for only storing the most recent messages, in this case (up to 40+ max), and discarding the old is known as FILO (First In, Last Out) management.

The 3 message archive managers/viewers you have are within Yahoo! Messenger 11 beta (Conversation History), Web Messenger (Message History), and inside Yahoo! Mail if you have a mail account (Search Messages).

While all three HTTP-based message archives, which store and retrieve your messages from the mail servers, can be disabled and the messages deleted... this does not disable the recent message archiving or even delete a single one of your Recent Messages from the chat servers they're stored on!
« Last Edit: June 06, 2011, 05:02:29 am by Adam »