オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

Diff of /trunk/1.6.x/ccs-patch/README.ccs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/ccs-patch/README.ccs revision 162 by kumaneko, Wed Mar 28 11:57:56 2007 UTC trunk/1.5.x/ccs-patch/README.ccs revision 581 by kumaneko, Tue Oct 16 08:00:21 2007 UTC
# Line 865  Fix 2007/03/07 Line 865  Fix 2007/03/07
865        I replaced some types with 'unsigned int'.        I replaced some types with 'unsigned int'.
866    
867  Version 1.4   2007/04/01   x86_64 support release.  Version 1.4   2007/04/01   x86_64 support release.
868    
869    Fix 2007/04/18
870    
871        @ Change argv[0] checking rule.
872    
873          I was comparing the basename of symbolic link's pathname and argv[0].
874          Since execute permission check and domain transition are done
875          based on realpath while argv[0] check is done based on the symlink's
876          pathname and argv[0], this specification will allow attackers behave
877          as /bin/cat in the domain of /bin/ls if "/bin/ls and /bin/cat are
878          links to /sbin/busybox" and "the attacker is permitted to create
879          a symlink named ~/cat that points to /bin/ls" and "the attacker is
880          permitted to run /bin/ls".
881          So, I changed to compare the basename of realpath and argv[0].
882          Also, I moved the location to compare before processing
883          "aggregator" directive so that
884          "aggregator /tmp/logrotate.\?\?\?\?\?\? /tmp/logrotate.tmp"
885          won't cause the mismatch of the basename of realpath and argv[0].
886    
887          If /bin/ls is a symlink to /sbin/busybox, then
888          creating a symlink named ~/cat that points to /bin/ls and
889          executing ~/cat won't work as expected because permission check and
890          domain transition are done using /sbin/busybox (realpath of /bin/ls)
891          and will be rejected since the administrator won't grant
892          "1 /sbin/busybox".
893    
894    Fix 2007/05/07
895    
896        @ Support pathname subtraction.
897    
898          There was no way to exclude specific pathnames when granting
899          permissions using wildcards.
900          There would be a need to exclude specific files and directories.
901          I introduced "\-" as subtraction operator.
902    
903            "A\-B" means "A" other than "B".
904            "A\-B\-C" means "A" other than "B" and "C".
905            "A\-B\-C\-D" means "A" other than "B" and "C" and "D".
906    
907          "A", "B", "C", "D" may contain wildcards.
908    
909          An example usage is "/home/\*/\*\-.ssh/\*", which means
910          "/home/\*/\*/\*" other than "/home/\*/.ssh/\*".
911    
912          "A" should contain wildcards because subtraction from constants
913          (e.g. "/usr\-usr/" or "/usr\-home/") is meaningless.
914    
915          Don't try "A\-B\+C" because "\+" is not addition operator.
916    
917    Fix 2007/05/24
918    
919        @ Fix autobind hook.
920    
921          The location to call SAKURA_MayAutobind() in net/ipv4/udp.c
922          and net/ipv6/udp.c were wrong.
923    
924    Fix 2007/06/03
925    
926        @ Add a space in MakeMountOptions().
927    
928          I forgot to add a space after "atime" and "noatime".
929    
930    Version 1.4.1 2007/06/05   Minor update release.
931    
932    Fix 2007/07/04
933    
934        @ Fix ReadAddressGroupPolicy() bug.
935    
936          ReadAddressGroupPolicy() fails if both "path_group" and "address_group" are used
937          because I forgot to set "head->read_var1 = NULL".
938    
939    Fix 2007/07/10
940    
941        @ Add compat_sys_stime() hook.
942    
943          Some of 64bit kernels support compat_sys_stime()
944          but permission check was missing.
945    
946    Version 1.4.2 2007/07/13   Bug fix release.
947    
948    Fix 2007/08/06
949    
950        @ Remove mount-flags manipulation.
951    
952          Until now, administrator is permitted to turn on/off specific mount options
953          regardless of mount options passed to kernel.
954          I removed this feature because "exact option matching" sounds better than
955          "automatic option enabler/disabler".
956    
957        @ Remove /proc/ccs/info/mapping .
958    
959          I removed /proc/ccs/info/mapping because nobody seems to use this feature.
960    
961        @ Call external policy loader automatically.
962    
963          Until now, users had to add init=/.init parameter to load policy
964          before /sbin/init starts.
965          I inserted call_usermodehelper() to call external policy loader when
966          execve("/sbin/init") is requested and external policy loader exists.
967    
968          This change will remove init=/.init parameter from most environment,
969          although call_usermodehelper() can't handle interactive operations.
970    
971        @ Move external policy loader from /.init to /sbin/ccs-init .
972    
973          Installing programs in / directory is not good for packaging.
974    
975    Fix 2007/08/13
976    
977        @ Update external policy loader.
978    
979          It turned out that /sbin/ccs-init invoked via call_usermodehelper()
980          can handle interactive operations by opening /dev/console .
981          Now, there is no difference between init=/sbin/ccs-init and
982          call_usermodehelper("/sbin/ccs-init"), and users no longer need to
983          add init=/sbin/ccs-init parameter to load policy before /sbin/init starts.
984    
985    Fix 2007/08/14
986    
987        @ Update recvmsg() hooks.
988    
989          Until now, it was impossible to apply network access control for
990          incoming UDP and RAW packets if they are brought to userland using
991          read() or recvmsg() with NULL address because address buffer is NULL.
992          I moved hooks from sock_recvmsg() to skb_recv_datagram() so that
993          network access control for incoming UDP and RAW packets always work.
994    
995    Fix 2007/08/16
996    
997        @ Return appropriate error code for CheckMountPermission().
998    
999          I was returning -EPERM if something is wrong with CheckMountPermission().
1000          But SELinux determines whether selinuxfs is supported by kernel
1001          based on whether error code is -ENODEV or not.
1002          So I stopped returning -EPERM unconditionally.
1003    
1004    Fix 2007/08/17
1005    
1006        @ Remove initializer directive.
1007    
1008          Use "initialize_domain" instrad of "initializer".
1009    
1010    Fix 2007/08/21
1011    
1012        @ Fix "allow_argv0 ... if if ..." bug.
1013    
1014          It was impossible to use a word "if" to the second argument of
1015          allow_argv0 if condition part is used.
1016    
1017    Fix 2007/08/24
1018    
1019        @ Move /proc/ccs/\*/\* to /proc/ccs/\* .
1020    
1021          Some pathnames for /proc/ccs/ interface were changed.
1022    
1023    Fix 2007/09/05
1024    
1025        @ Drop MSG_PEEK'ed message before skb_free_datagram().
1026    
1027          I need to remove head message from unwanted source
1028          from socket's receive queue so that the caller can pick up
1029          next message from wanted source with MSG_PEEK flags.
1030    
1031    Version 1.5.0 2007/09/20   Usability enhancement release.
1032    
1033    Fix 2007/09/27
1034    
1035        @ Avoid eating memory after quota exceeded.
1036    
1037          Although ACL entries in a domain won't be added if the domain's quota
1038          has exceeded, SaveName() in AddFileACL() is called anyway.
1039          This caused unneeded memory consumption.
1040    
1041          Now, quota checking is done before getting domain_acl_lock lock.
1042          This may exceed quota by one or two entries, but that won't matter.
1043    
1044    Fix 2007/10/16
1045    
1046        @ Add environment variable check.
1047    
1048          There are environment variables that may cause dangerous behavior
1049          like LD_\* .
1050          So I introduced 'allow_env' directive that allows specified
1051          environment variable inherited to next domain.
1052          Unlike other permissions, this check is done at execve() time
1053          using next domain's ACL information.
1054    
1055          To manage commonly inherited environments like PATH ,
1056          you can use 'allow_env' directive in exception policy
1057          to globally grant specified environment variable.

Legend:
Removed from v.162  
changed lines
  Added in v.581

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26