eromang

Another potential DoS CVE for Oracle MySQL of July 2012

Jul 19th, 2012
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. Another potential DoS CVE for Oracle MySQL CPU of July 2012
  2.  
  3. ------------------------------------------------------------
  4. revno: 3097.126.64
  5. committer: [email protected]
  6. branch nick: systemtables-5.5
  7. timestamp: Wed 2012-04-11 15:53:17 +0530
  8. message:
  9. Bug#11815557 60269: MYSQL SHOULD REJECT ATTEMPTS TO CREATE SYSTEM
  10. TABLES IN INCORRECT ENGINE
  11.  
  12. PROBLEM:
  13. CREATE/ALTER TABLE currently can move system tables like
  14. mysql.db, user, host etc, to engines other than MyISAM. This is not
  15. completely supported as of now, by mysqld. When some of system tables
  16. like plugin, servers, event, func, *_priv, time_zone* are moved
  17. to innodb, mysqld restart crashes. Currently system tables
  18. can be moved to BLACKHOLE also!!!.
  19.  
  20. ANALYSIS:
  21. The problem is that there is no check before creating or moving
  22. a system table to some particular engine.
  23.  
  24. System tables are suppose to be residing in MyISAM. We can think
  25. of restricting system tables to exist only in MyISAM. But, there could
  26. be future needs of these system tables to be part of other engines
  27. by design. For eg, NDB cluster expects some tables to be on innodb
  28. or ndb engine. This calls for a solution, by which system
  29. tables can be supported by any desired engine, with minimal effort.
  30.  
  31. FIX:
  32. The solution provides a handlerton interface using which,
  33. mysqld server can query particular storage engine handlerton for
  34. system tables that it supports. This way each storage engine
  35. layer can define their own system database and system tables.
  36.  
  37. The check_engine() function uses the new handlerton function
  38. ha_check_if_supported_system_table() to check if db.tablename
  39. provided in the DDL is supported by the SE.
  40.  
  41. Note: This fix has modified a test in help.test, which was moving
  42. mysql.help_* to innodb. The primary intention of the test was not
  43. to move them between engines.
Advertisement
Add Comment
Please, Sign In to add comment