Commit graph

40447 commits

Author SHA1 Message Date
Tatjana Azundris Nuernberg
546084eba2 Bug#11765687 (MySQL58677): No privilege on table / view, but can know #rows / underlying table's name
1 - If a user had SHOW VIEW and SELECT privileges on a view and
this view was referencing another view, EXPLAIN SELECT on the outer
view (that the user had privileges on) could reveal the structure
of the underlying "inner" view as well as the number of rows in
the underlying tables, even if the user had privileges on none of
these referenced objects.

This happened because we used DEFINER's UID ("SUID") not just for
the view given in EXPLAIN, but also when checking privileges on
the underlying views (where we should use the UID of the EXPLAIN's
INVOKER instead).

We no longer run the EXPLAIN SUID (with DEFINER's privileges).
This prevents a possible exploit and makes permissions more
orthogonal.

2 - EXPLAIN SELECT would reveal a view's structure even if the user
did not have SHOW VIEW privileges for that view, as long as they
had SELECT privilege on the underlying tables.

Instead of requiring both SHOW VIEW privilege on a view and SELECT
privilege on all underlying tables, we were checking for presence
of either of them.

We now explicitly require SHOW VIEW and SELECT privileges on
the view we run EXPLAIN SELECT on, as well as all its
underlying views. We also require SELECT on all relevant
tables.
2011-09-29 10:47:11 +01:00
Georgi Kodinov
b079cea72e changed the old @sun.com address of security trees. 2011-08-17 13:13:44 +03:00
Tor Didriksen
00f672e677 Bug#12406055 post-push fix: ignore float output 2011-07-18 09:06:59 +02:00
Tor Didriksen
cfe3489b95 Bug#12406055 BUFFER OVERFLOW OF VARIABLE 'BUFF' IN STRING::SET_REAL
The buffer was simply too small.
In 5.5 and trunk, the size is 311 + 31,
in 5.1 and below, the size is 331
2011-07-15 14:07:38 +02:00
Georgi Kodinov
4c7a22477e weave merge of mysql-5.0->mysql-5.0-security 2011-07-07 14:27:20 +03:00
Sunanda Menon
f094b48da4 Merge from mysql-5.0.94-release 2011-07-06 11:36:39 +02:00
Kent Boortz
7087c2e689 Updated/added copyright headers 2011-06-30 21:27:04 +02:00
Kent Boortz
e5ce023f57 Updated/added copyright headers 2011-06-30 17:31:31 +02:00
Vasil Dimov
095a91756c Bug #12696083 FIX OUTDATED COPYRIGHT NOTICES IN INNODB RELATED CLIENT TOOLS
Update copyright comment in innochecksum.
2011-06-29 14:28:30 +03:00
Georgi Kodinov
d85bc0070e auto-merge of version update from mysql-5.0 to mysql-5.0-security 2011-06-16 12:20:14 +03:00
Karen Langford
940335e18c increase version number to 5.0.95 2011-06-10 18:12:18 +02:00
Sunanda Menon
7174bd385c Raise version number after cloning 5.0.94 2011-06-10 07:38:09 +02:00
Georgi Kodinov
207eb40862 weave merge of 5.0->5.0-security 2011-05-10 16:49:13 +03:00
Sunanda Menon
78e73ec219 Merge from mysql-5.0.93-release 2011-05-06 10:36:30 +02:00
Georgi Kodinov
693fee5d56 Addendum 3 for bug #BUG#11764517 : expand secure_file_priv to the real
patch so that it can later be compared with patchs with expanded symlinks
2011-05-05 12:10:49 +03:00
Georgi Kodinov
10afe0993e Addendum to bug #11764517 : don't create links for --mem directory, move the --vardir instead.
The new --secure-file-priv checks dereference any symlinks in the paths and compare the 
resolved paths.
Thus the 5.0 test suite must do as the 5.1 and up and avoid using symlinks.
2011-05-04 19:23:23 +03:00
Tor Didriksen
a32df762d4 Bug#12329653 - EXPLAIN, UNION, PREPARED STATEMENT, CRASH, SQL_FULL_GROUP_BY
The query was re-written *after* we had tagged it with NON_AGG_FIELD_USED.
Remove the flag before continuing.
2011-05-04 16:18:21 +02:00
Georgi Kodinov
faad822740 Addendum to the fix for bug #11764517 : replaced an absolute path. 2011-05-04 15:47:29 +03:00
Georgi Kodinov
4c5dfc00f7 Bug #11764517: 57359: POSSIBLE TO CIRCUMVENT SECURE_FILE_PRIV
USING '..' ON WINDOWS

Backport of the fix to 5.0 (to be null-merged to 5.1).
Moved the test into the main test suite. 
Made mysql-test-run.pl to not use symlinks for sdtdata as the symlinks
are now properly recognized by secure_file_priv.
Made sure the paths in load_file(), LOAD DATA and SELECT .. INTO OUTFILE 
that are checked against secure_file_priv in a correct way similarly to 5.1 
by the extended is_secure_file_path() backport before the comparison.
Added an extensive test with all the variants of upper/lower case, 
slash/backslash and case sensitivity.
Added few comments to the code.
2011-04-28 12:22:41 +03:00
Georgi Kodinov
8f449c36de Bug #11810224: CORRECT INVALID LGPL NOTICE IN CLUSTER FILES
The 5.0 fix. Removed unreferenced files and the directory 
that has them.
2011-04-18 17:04:01 +03:00
Jon Olav Hauglid
7f5180598f Bug#11882603 SELECT_ACL ON ANY COLUMN IN MYSQL.PROC ALLOWS TO SEE
DEFINITION OF ANY ROUTINE.

This follow-up patch removes SHOW PROCEDURE CODE from the test
case as this command is only available on debug versions of the
server and therefore caused the test to fail on release builds.
2011-04-13 09:54:51 +02:00
Jon Olav Hauglid
b3ea1d1feb Bug#11882603 SELECT_ACL ON ANY COLUMN IN MYSQL.PROC ALLOWS TO SEE
DEFINITION OF ANY ROUTINE.

The problem was that having the SELECT privilege any column of the
mysql.proc table by mistake allowed the user to see the definition
of all routines (using SHOW CREATE PROCEDURE/FUNCTION and SHOW
PROCEDURE/FUNCTION CODE).

This patch fixes the problem by making sure that those commands
are only allowed if the user has the SELECT privilege on the
mysql.proc table itself.

Test case added to sp-security.test.
2011-04-11 12:24:50 +02:00
Alexander Nozdrin
a490a6005a Empty merge from mysql-5.0. 2011-04-11 14:05:08 +04:00
Alexander Nozdrin
280c3cf7a9 Bump NDB-version. 2011-04-11 13:57:45 +04:00
Alexander Nozdrin
90697a7649 Empty merge from mysql-5.0 (bump the version). 2011-04-11 13:51:02 +04:00
Alexander Nozdrin
ab52fdfaab Bump version. 2011-04-11 13:45:41 +04:00
Sunanda Menon
25096933df Raise version number after cloning 5.0.93 2011-04-11 09:27:07 +02:00
Georgi Kodinov
db8e5b47d8 merge mysql-5.0->mysql-5.0-security 2011-04-07 12:17:36 +03:00
Magne Mahre
40af59490e Post-push fix for Bug 11896296
Didn't build on Solaris.
2011-03-22 16:27:32 +01:00
Magne Mahre
7606856e48 Bug#11896296 REMOVE LGPL LICENSED FILES IN MYSQL 5.0
The LGPL license is used in some legacy code, and to
adhere to current licensing polity, we remove those
files that are no longer used, and reorganize the
remaining LGPL code so it will be GPL licensed from
now on.

Note:  This patch only removed LGPL licensed files
       in MySQL 5.0, and is the first of a set of
       patches to remove LGPL from all trees.
       (See Bug# 11840513 for details)
2011-03-22 13:50:14 +01:00
Georgi Kodinov
1a6c17a148 merge 2011-03-21 15:54:17 +02:00
Georgi Kodinov
93ab096751 merge 5.0->5.0-security 2011-03-21 15:52:45 +02:00
Ramil Kalimullin
49ee8db5df Fix for bug#51875/#11759554 backported from mysql-5.1. 2011-03-21 09:21:14 +03:00
Kent Boortz
35bda0ae15 Removed the "Third-Party Component Notices" part 2011-03-16 23:04:29 +01:00
Georgi Kodinov
a29eea3fb1 merge 5.0->5.0-security 2011-03-09 16:46:31 +02:00
Georgi Kodinov
e1f412bec7 merge mysql-5.0-secrutiy-fixed -> mysql-5.0 2011-03-09 14:48:23 +02:00
Jonathan Perkin
edcdc79e5a Updated README file. 2011-02-16 14:42:44 -08:00
Georgi Kodinov
e2b44930cc merge 5.0->5.0-security 2011-02-10 12:07:16 +02:00
John H. Embretsen
bdb4df0f26 Backport to 5.0: Fix for Bug#52060 - test udf fails on Snow Leopard.
Reverse DNS lookup of "localhost" returns "broadcasthost" on Snow Leopard (Mac), and NULL on most others.
Simply ignore the output, as this is not an essential part of UDF testing.
2011-02-09 10:50:09 +01:00
Georgi Kodinov
3e897beab3 merge 5.0->5.0-security 2011-02-09 10:16:32 +02:00
Georgi Kodinov
fb18601ee8 Bug #59815: Missing License information with enterprise GPL packages
on behalf of Kent: Include the README into the binary packages
2011-02-08 17:36:25 +02:00
Jonathan Perkin
01f57bc98e Merge from mysql-5.0.92-release 2011-02-08 14:43:27 +01:00
Dmitry Lenev
e960abc7cf Fix for bug#36544 "DROP USER does not remove stored function
privileges".

The first problem was that DROP USER didn't properly remove privileges 
on stored functions from in-memory structures. So the dropped user
could have called stored functions on which he had privileges before
being dropped while his connection was still around.
Even worse if a new user with the same name was created he would
inherit privileges on stored functions from the dropped user.
Similar thing happened with old user name and function privileges
during RENAME USER.

This problem stemmed from the fact that the handle_grant_data() function
which handled DROP/RENAME USER didn't take any measures to update
in-memory hash with information about function privileges after
updating them on disk.

This patch solves this problem by adding code doing just that.

The second problem was that RENAME USER didn't properly update in-memory
structures describing table-level privileges and privileges on stored 
procedures. As result such privileges could have been lost after a rename
(i.e. not associated with the new name of user) and inherited by a new
user with the same name as the old name of the original user.

This problem was caused by code handling RENAME USER in
handle_grant_struct() which [sic!]:
a) tried to update wrong (tables) hash when updating stored procedure
   privileges for new user name.
b) passed wrong arguments to function performing the hash update and
   didn't take into account the way in which such update could have
   changed the order of the hash elements.

This patch solves this problem by ensuring that a) the correct hash
is updated, b) correct arguments are used for the hash_update()
function and c) we take into account possible changes in the order
of hash elements.
2011-02-07 14:01:19 +03:00
Georgi Kodinov
6954b67255 Bug #52315 part 2 addendum : reset back the timestamp 2011-02-02 20:10:57 +02:00
Georgi Kodinov
59f68983ff Fixes for Bug #55755 and Bug #52315 part 2
Bug #55755 : Date STD variable signness breaks server on FreeBSD and OpenBSD

* Added a check to configure on the size of time_t
* Created a macro to check for a valid time_t that is safe to use with datetime 
  functions and store in TIMESTAMP columns.
* Used the macro consistently instead of the ad-hoc checks introduced by 52315
* Fixed compliation warnings on platforms where the size of time_t is smaller than
  the size of a long (e.g. OpenBSD 4.8 64 amd64).

Bug #52315: utc_date() crashes when system time > year 2037

* Added a correct check for the timestamp range instead of just variable size check to
SET TIMESTAMP.
* Added overflow checking before converting to time_t. 
* Using a correct localized error message in this case instead of the generic error.
* Added a test suite.
* fixed the checks so that they check for unsigned time_t as well. Used the checks 
  consistently across the source code.
* fixed the original test case to expect the new error code.
2011-02-02 18:51:35 +02:00
Sergey Vojtovich
6908d1ef78 Merge. 2011-01-28 14:46:10 +03:00
Ramil Kalimullin
4eb7054598 Bug #47811 : remove the non-default alignment specification.
Fix backported from to 5.0.
"Remove the alignment option, let valgrind use its default"
2011-01-26 15:49:09 +03:00
Libing Song
c895aba35c Postfix bug#49124
Updated the copyright.
2011-01-26 15:30:06 +08:00
ade1c74b3f BUG#49124 Security issue with /*!-versioned */ SQL statements on Slave
Backport to 5.0.

/*![:version:] Query Code */, where [:version:] is a sequence of 5 
digits representing the mysql server version(e.g /*!50200 ... */),
is a special comment that the query in it can be executed on those 
servers whose versions are larger than the version appearing in the 
comment. It leads to a security issue when slave's version is larger 
than master's. A malicious user can improve his privileges on slaves. 
Because slave SQL thread is running with SUPER privileges, so it can
execute queries that he/she does not have privileges on master.
      
This bug is fixed with the logic below: 
- To replace '!' with ' ' in the magic comments which are not applied on
  master. So they become common comments and will not be applied on slave.
      
- Example:
  'INSERT INTO t1 VALUES (1) /*!10000, (2)*/ /*!99999 ,(3)*/
   will be binlogged as
  'INSERT INTO t1 VALUES (1) /*!10000, (2)*/ /* 99999 ,(3)*/
2011-01-15 13:48:16 +08:00
sunanda.menon@oracle.com
246edcd279 Raise version number after cloning 5.0.92 2011-01-13 10:00:03 +01:00