Headline
CVE-2022-2822: 🔒️ Rate limit failed login attempts · OctoPrint/OctoPrint@82c892b
An attacker can freely brute force username and password and can takeover any account. An attacker could easily guess user passwords and gain access to user and administrative accounts.
@@ -11,7 +11,8 @@ $(function () {
};
var overlayElement = $(“#login-overlay”);
var errorElement = $(“#login-error”);
var errorCredentialsElement = $(“#login-error-credentials”);
var errorRateElement = $(“#login-error-rate”);
var offlineElement = $(“#login-offline”);
var buttonElement = $(“#login-button”);
var reconnectElement = $(“#login-reconnect”);
@@ -28,15 +29,16 @@ $(function () {
var remember = rememberElement.prop(“checked”);
overlayElement.addClass(“in”);
errorElement.removeClass(“in”);
errorCredentialsElement.removeClass(“in”);
errorRateElement.removeClass(“in”);
OctoPrint.browser
.login(username, password, remember)
.done(() => {
ignoreDisconnect = true;
window.location.href = REDIRECT_URL;
})
.fail(() => {
.fail((xhr) => {
usernameElement.val(USER_ID);
passwordElement.val(“”);
@@ -47,7 +49,11 @@ $(function () {
}
overlayElement.removeClass(“in”);
errorElement.addClass(“in”);
if (xhr.status === 429) {
errorRateElement.addClass(“in”);
} else {
errorCredentialsElement.addClass(“in”);
}
});
return false;
Related news
OctoPrint 1.7.3 and prior does not have rate limiting on the login page, making it possible for attackers to attempt brute force attacks. The severity of this issue is limited by OctoPrint normally running in a restricted LAN. The `devel` and `maintenance` branches of the repository have a fix that limits the rate of failed login attempts.