Loco-CTO / Rystal-V6-Experiments

Audit required: Risk of possible SQL injection vector through string-based query construction BAN-B608
Security
Major
9 days ago2 months old
Possible SQL injection vector through string-based query construction.
164        db_handler.connection.ping(reconnect=True, attempts=3)
165    statement = {
166        "sqlite": f"SELECT user_id, level, xp, total_xp, points FROM users ORDER BY {order_by} DESC LIMIT ?",
167        "mysql": f"SELECT user_id, level, xp, total_xp, points FROM users ORDER BY {order_by} DESC LIMIT %s",168    }
169    db_handler.execute(
170        statement,
Possible SQL injection vector through string-based query construction.
163    if db_handler.db_type == "mysql":
164        db_handler.connection.ping(reconnect=True, attempts=3)
165    statement = {
166        "sqlite": f"SELECT user_id, level, xp, total_xp, points FROM users ORDER BY {order_by} DESC LIMIT ?",167        "mysql": f"SELECT user_id, level, xp, total_xp, points FROM users ORDER BY {order_by} DESC LIMIT %s",
168    }
169    db_handler.execute(
Possible SQL injection vector through string-based query construction.
127        )
128        statement = {
129            "sqlite": f"DELETE FROM permissions WHERE command_id NOT IN ({placeholders})",
130            "mysql": f"DELETE FROM permissions WHERE command_id NOT IN ({placeholders})",131        }
132        self.db.execute(statement, tuple(self.command_id_list))
133        self.command_id_list.clear()
Possible SQL injection vector through string-based query construction.
126            "?" if self.db.db_type == "sqlite" else "%s" for _ in self.command_id_list
127        )
128        statement = {
129            "sqlite": f"DELETE FROM permissions WHERE command_id NOT IN ({placeholders})",130            "mysql": f"DELETE FROM permissions WHERE command_id NOT IN ({placeholders})",
131        }
132        self.db.execute(statement, tuple(self.command_id_list))
Possible SQL injection vector through string-based query construction.
125        await append_guild(guild_id)
126    statement = {
127        "sqlite": f"UPDATE guild SET {key} = ? WHERE guild_id = ?",
128        "mysql": f"UPDATE guild SET {key} = %s WHERE guild_id = %s",129    }
130    db_handler.execute(statement, (value, str(guild_id)))
131    print(