A Yahoo Mail bug woud have allowed hackers to read people's email or create a virus infecting accounts, according to a security researcher who flagged the flaw to the company.
Yahoo paid Jouko Pynnonen of Klikki Oy, Finland, $10,000 for privately disclosing the flaw through its HackerOne bug bounty.
According to Pynnonen, the flaw was a cross-site scripting (XSS) attack and allowed an attacker to read a victim's email or create a virus infecting Yahoo Mail accounts, among other things.
"The attack required the victim to view an email sent by the attacker. No further interaction (such as clicking on a link or opening an attachment) was required," Pynnonen explained, adding that the flaw was similar to last year's Yahoo Mail bug, which similarly let an attacker compromise a user's account.
While Yahoo filters HTML messages to make sure malicious code doesn't make it past the user's browser, the researcher found that the filters didn't catch all of the malicious data attributes, and by sending a specially crafted email, a hacker could trigger malicious JavaScript to be executed immediately.
The flaw was discovered when Pynnonen realised it was coming up to the year anniversary of last year's Yahoo Mail bug, which allowed malicious JavaScript code to be embedded in specially formatted emails.
"I decided to take another shot at it," he said. "I felt that finding another bug in basic HTML filtering seemed unlikely. However in the email composing view I noticed various attachment options to which I didn't give much attention last year."
Get the ITPro. daily newsletter
Receive our latest news, industry updates, featured resources and more. Sign up today to receive our FREE report on AI cyber crime & security - newly updated for 2024.
Pynnonen composed an email containing different kinds of attachments and sent it to an external mailbox so he could inspect the 'raw' HTML this kind of email contains.
"What caught my eye were the data-* HTML attributes. First, I realised my last year's effort to enumerate HTML attributes allowed by Yahoo's filter didn't catch all of them," he said. "Second, since data-* HTML attributes are used to store application-specific data typically for JavaScript use, it seemed there was a new potential attack vector here. It would be possible to embed a number of HTML attributes that are passed through Yahoo's HTML filter and treated specially.
"I tried creating an email with "abusive" data-* attributes and bingo!, found a pathological case pretty quickly."
By inserting a quote symbol in the data-url value, he caused a broken HTML in the share button.
"As long as the URL pointed to a white-listed website such as YouTube, it was not further sanity checked or encoded. The value was used as is for setting a div innerHTML to create the button."
The flaw was reported to Yahoo Security via HackerOne on 12 November and fixed on 29 November. It's not the only time Yahoo Mail has been in the news this year, after a hacker offered the details of 200 million Mail accounts on the dark web in August.