Loading HuntDB...

CSS Injection in Message Avatar

Medium
R
Rocket.Chat
Submitted None
Reported by gronke

Vulnerability Details

Technical details and impact analysis

Code Injection
## Summary Custom message avatars can contain inline CSS that influences the resulting HTML element rendering. ## Description The Meteor.method `sendMessage` allows setting custom avatars. When escaping the input with `none);` further CSS is applied to the elements inline styles. The injected CSS may not contain certain characters, including whitespace. ``` Meteor.call("sendMessage", { rid: "<ROOM OR DM ID>", avatar: "none);position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background-color:black;opacity:0.5;pointer-events:none;", msg: "Enjoy the Dark Theme!", alias: "hacker" }); ``` When the background image is a screenshot of the 2FA message dialog, users could be confused to enter their 2FA token to the chat message field and accidentallty sent it into the currently open channel. A more sophisticated attack would use a second CSS injection overlaying the text input. Although only one CSS element at a time can be influenced, the combination many can lead to the UI being in attacker control. ## Releases Affected: * develop ## Steps To Reproduce (from initial installation to vulnerability): 1. Login to Rocket.Chat 2. Figure out channel or direct message ID 3. Open Web Inspector 4. Send malicious message with Meteor.call `sendMessage` ## Suggested mitigation * Verify avatar URLs * Sanitize user input ## Impact Attackers can overlay UI elements and phish for users credentials that are accidentally entered in chat messages.

Report Details

Additional information and metadata

State

Closed

Substate

Resolved

Submitted

Weakness

Code Injection