Ignore:
Timestamp:
Jun 9, 2016, 2:23:12 PM (9 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: apply latest security patches to trunk

Location:
trunk/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/source3/rpc_server/netlogon/srv_netlog_nt.c

    r916 r920  
    15091509        {
    15101510                const char *wksname = nt_workstation;
     1511                const char *workgroup = lp_workgroup();
    15111512
    15121513                status = make_auth_context_fixed(talloc_tos(), &auth_context,
     
    15331534                        status = NT_STATUS_NO_MEMORY;
    15341535                }
     1536
     1537                if (NT_STATUS_IS_OK(status)) {
     1538                        status = NTLMv2_RESPONSE_verify_netlogon_creds(
     1539                                                user_info->client.account_name,
     1540                                                user_info->client.domain_name,
     1541                                                user_info->password.response.nt,
     1542                                                creds, workgroup);
     1543                }
    15351544                break;
    15361545        }
     
    16371646                break;
    16381647        case 6:
     1648                /* Only allow this if the pipe is protected. */
     1649                if (p->auth.auth_level < DCERPC_AUTH_LEVEL_PRIVACY) {
     1650                        DEBUG(0,("netr_Validation6: client %s not using privacy for netlogon\n",
     1651                                get_remote_machine_name()));
     1652                        status = NT_STATUS_INVALID_PARAMETER;
     1653                        break;
     1654                }
     1655
    16391656                status = serverinfo_to_SamInfo6(server_info, pipe_session_key, 16,
    16401657                                                r->out.validation->sam6);
     
    17881805                           struct netr_LogonUasLogon *r)
    17891806{
    1790         p->rng_fault_state = true;
     1807        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    17911808        return WERR_NOT_SUPPORTED;
    17921809}
     
    17981815                            struct netr_LogonUasLogoff *r)
    17991816{
    1800         p->rng_fault_state = true;
     1817        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    18011818        return WERR_NOT_SUPPORTED;
    18021819}
     
    18081825                              struct netr_DatabaseDeltas *r)
    18091826{
    1810         p->rng_fault_state = true;
     1827        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    18111828        return NT_STATUS_NOT_IMPLEMENTED;
    18121829}
     
    18181835                            struct netr_DatabaseSync *r)
    18191836{
    1820         p->rng_fault_state = true;
     1837        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    18211838        return NT_STATUS_NOT_IMPLEMENTED;
    18221839}
     
    18281845                             struct netr_AccountDeltas *r)
    18291846{
    1830         p->rng_fault_state = true;
     1847        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    18311848        return NT_STATUS_NOT_IMPLEMENTED;
    18321849}
     
    18381855                           struct netr_AccountSync *r)
    18391856{
    1840         p->rng_fault_state = true;
     1857        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    18411858        return NT_STATUS_NOT_IMPLEMENTED;
    18421859}
     
    19791996                             struct netr_DatabaseSync2 *r)
    19801997{
    1981         p->rng_fault_state = true;
     1998        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    19821999        return NT_STATUS_NOT_IMPLEMENTED;
    19832000}
     
    19892006                            struct netr_DatabaseRedo *r)
    19902007{
    1991         p->rng_fault_state = true;
     2008        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    19922009        return NT_STATUS_NOT_IMPLEMENTED;
    19932010}
     
    19992016                          struct netr_DsRGetDCName *r)
    20002017{
    2001         p->rng_fault_state = true;
     2018        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20022019        return WERR_NOT_SUPPORTED;
    20032020}
     
    20182035                                     struct netr_NETRLOGONSETSERVICEBITS *r)
    20192036{
    2020         p->rng_fault_state = true;
     2037        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20212038        return WERR_NOT_SUPPORTED;
    20222039}
     
    20282045                              struct netr_LogonGetTrustRid *r)
    20292046{
    2030         p->rng_fault_state = true;
     2047        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20312048        return WERR_NOT_SUPPORTED;
    20322049}
     
    20382055                                          struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
    20392056{
    2040         p->rng_fault_state = true;
     2057        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20412058        return WERR_NOT_SUPPORTED;
    20422059}
     
    20482065                                          struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
    20492066{
    2050         p->rng_fault_state = true;
     2067        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20512068        return WERR_NOT_SUPPORTED;
    20522069}
     
    20582075                            struct netr_DsRGetDCNameEx *r)
    20592076{
    2060         p->rng_fault_state = true;
     2077        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20612078        return WERR_NOT_SUPPORTED;
    20622079}
     
    20682085                            struct netr_DsRGetSiteName *r)
    20692086{
    2070         p->rng_fault_state = true;
     2087        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20712088        return WERR_NOT_SUPPORTED;
    20722089}
     
    20782095                                  struct netr_LogonGetDomainInfo *r)
    20792096{
    2080         p->rng_fault_state = true;
     2097        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20812098        return NT_STATUS_NOT_IMPLEMENTED;
    20822099}
     
    20882105                               struct netr_ServerPasswordGet *r)
    20892106{
    2090         p->rng_fault_state = true;
     2107        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    20912108        return WERR_NOT_SUPPORTED;
    20922109}
     
    20982115                                struct netr_NETRLOGONSENDTOSAM *r)
    20992116{
    2100         p->rng_fault_state = true;
     2117        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21012118        return WERR_NOT_SUPPORTED;
    21022119}
     
    21082125                                    struct netr_DsRAddressToSitenamesW *r)
    21092126{
    2110         p->rng_fault_state = true;
     2127        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21112128        return WERR_NOT_SUPPORTED;
    21122129}
     
    21182135                             struct netr_DsRGetDCNameEx2 *r)
    21192136{
    2120         p->rng_fault_state = true;
     2137        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21212138        return WERR_NOT_SUPPORTED;
    21222139}
     
    21282145                                                 struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
    21292146{
    2130         p->rng_fault_state = true;
     2147        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21312148        return WERR_NOT_SUPPORTED;
    21322149}
     
    21382155                                           struct netr_NetrEnumerateTrustedDomainsEx *r)
    21392156{
    2140         p->rng_fault_state = true;
     2157        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21412158        return WERR_NOT_SUPPORTED;
    21422159}
     
    21482165                                      struct netr_DsRAddressToSitenamesExW *r)
    21492166{
    2150         p->rng_fault_state = true;
     2167        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21512168        return WERR_NOT_SUPPORTED;
    21522169}
     
    21582175                                   struct netr_DsrGetDcSiteCoverageW *r)
    21592176{
    2160         p->rng_fault_state = true;
     2177        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21612178        return WERR_NOT_SUPPORTED;
    21622179}
     
    21682185                                      struct netr_DsrEnumerateDomainTrusts *r)
    21692186{
    2170         p->rng_fault_state = true;
     2187        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21712188        return WERR_NOT_SUPPORTED;
    21722189}
     
    21782195                                         struct netr_DsrDeregisterDNSHostRecords *r)
    21792196{
    2180         p->rng_fault_state = true;
     2197        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21812198        return WERR_NOT_SUPPORTED;
    21822199}
     
    21882205                                       struct netr_ServerTrustPasswordsGet *r)
    21892206{
    2190         p->rng_fault_state = true;
     2207        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    21912208        return NT_STATUS_NOT_IMPLEMENTED;
    21922209}
     
    21982215                                          struct netr_DsRGetForestTrustInformation *r)
    21992216{
    2200         p->rng_fault_state = true;
     2217        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    22012218        return WERR_NOT_SUPPORTED;
    22022219}
     
    22722289        /* TODO: check server name */
    22732290
    2274         status = schannel_check_creds_state(p->mem_ctx, lp_private_dir(),
    2275                                             r->in.computer_name,
    2276                                             r->in.credential,
    2277                                             r->out.return_authenticator,
    2278                                             &creds);
     2291        become_root();
     2292        status = netr_creds_server_step_check(p, p->mem_ctx,
     2293                                              r->in.computer_name,
     2294                                              r->in.credential,
     2295                                              r->out.return_authenticator,
     2296                                              &creds);
     2297        unbecome_root();
    22792298        if (!NT_STATUS_IS_OK(status)) {
    22802299                return status;
     
    23722391        /* TODO: check server name */
    23732392
    2374         status = schannel_check_creds_state(p->mem_ctx, lp_private_dir(),
    2375                                             r->in.computer_name,
    2376                                             r->in.credential,
    2377                                             r->out.return_authenticator,
    2378                                             &creds);
     2393        become_root();
     2394        status = netr_creds_server_step_check(p, p->mem_ctx,
     2395                                              r->in.computer_name,
     2396                                              r->in.credential,
     2397                                              r->out.return_authenticator,
     2398                                              &creds);
     2399        unbecome_root();
    23792400        if (!NT_STATUS_IS_OK(status)) {
    23802401                return status;
     
    24772498                        struct netr_Unused47 *r)
    24782499{
    2479         p->rng_fault_state = true;
     2500        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    24802501        return NT_STATUS_NOT_IMPLEMENTED;
    24812502}
     
    24872508                                                 struct netr_DsrUpdateReadOnlyServerDnsRecords *r)
    24882509{
    2489         p->rng_fault_state = true;
     2510        p->fault_state = DCERPC_FAULT_OP_RNG_ERROR;
    24902511        return NT_STATUS_NOT_IMPLEMENTED;
    24912512}
Note: See TracChangeset for help on using the changeset viewer.