diff --git a/src/box/lua/schema.lua b/src/box/lua/schema.lua
index 3bfd430acf72d6024ddd2fcd606cfa9718803a92..ea072a45622aa254b798b9155b4177fcb20e8172 100644
--- a/src/box/lua/schema.lua
+++ b/src/box/lua/schema.lua
@@ -3242,7 +3242,8 @@ box.schema.user.passwd = function(name, new_password)
     if new_password == nil then
         -- change password for current user
         new_password = name
-        box.session.su('admin', chpasswd, session.uid(), new_password, name)
+        box.session.su('admin', chpasswd, session.uid(), new_password,
+                       session.user())
     else
         -- change password for other user
         local uid = user_resolve(name)
diff --git a/test/box-luatest/fix-passing-password-instead-of-user-name-in-box-passwd_test.lua b/test/box-luatest/fix-passing-password-instead-of-user-name-in-box-passwd_test.lua
new file mode 100644
index 0000000000000000000000000000000000000000..80193dbdde3465df61bfcff7e9522baa646fadd3
--- /dev/null
+++ b/test/box-luatest/fix-passing-password-instead-of-user-name-in-box-passwd_test.lua
@@ -0,0 +1,28 @@
+local server = require('luatest.server')
+local t = require('luatest')
+
+local g = t.group()
+
+g.before_all(function()
+    g.server = server:new({alias = 'master'})
+    g.server:start()
+end)
+
+g.after_all(function()
+    g.server:stop()
+end)
+
+g.test_box_password_without_username_argument = function()
+    t.assert(g.server:exec(function()
+        box.cfg{auth_type='md5'}
+        local user = 'admin'
+        local pass = 'dwsadwaeaDSdawDsa321_#!$'
+        box.session.su(user)
+        local hash = box.space._user:select(1)[1][5]['md5']
+        t.assert_not_equals (hash, box.schema.user.password(pass, user))
+        box.schema.user.passwd(pass)
+        hash = box.space._user:select(1)[1][5]['md5']
+        t.assert_equals(hash, box.schema.user.password(pass, user))
+        return true
+    end))
+end