VAR-201001-0329

Vulnerability from variot - Updated: 2022-05-04 09:19

Apache HTTP Server is a popular web server. The Apache server's mod_proxy module has an integer overflow vulnerability that can eventually cause a heap overflow when performing character type conversions. The following is a vulnerable code snippet: \"./src/modules/proxy/proxy_util.c\"long int ap_proxy_send_fb(BUFF f, request_rec r, cache_req c, off_t len, int nowrite, int chunked, size_t recv_buffer_size){ ... size_t buf_size; long remaining = 0;... for (end_of_chunk = ok = 1; ok;) {... if (chunked) { long chunk_start = 0; n = 0; / start of a new chunk / if (end_of_chunk) { end_of_chunk = 0; / get the chunk size from the stream / chunk_start = ap_getline(buf, buf_size, f, 0); <-------------- -- [0] reading line from traffic (socket) if ((chunk_start <= 0) || ((size_t)chunk_start + 1 >= buf_size) || !ap_isxdigit(buf)) { n = -1; } / * parse the chunk size / else { remaining = ap_get_chunk_size(buf); <---------------- [1] convert readed data to 'long' size! if (re Maining == 0) { / Last chunk indicated, get footers /... } } else if (remaining < 0) { n = -1; ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r, \"proxy: Remote protocol error, invalid chunk size\"); } } } / read the chunk */ if (remaining > 0) { n = ap_bread(f, buf, MIN((int)buf_size, (int)remaining)); ------------- [2] convert 'long' to 'int' !!!! if (n > -1) { remaining -= n; end_of_chunk = (remaining == 0); } }......}When the server reads the HTTP header, if it is a block connection, it will wait at [0] and read the block size data from the socket, which will be received at [1]. The data to be converted to a long type; if there is a positive block size, [2] directly converts the long type to an int type, which is An integer overflow may be triggered on the amd64 architecture.

Show details on source website

{
  "@context": {
    "@vocab": "https://www.variotdbs.pl/ref/VARIoTentry#",
    "affected_products": {
      "@id": "https://www.variotdbs.pl/ref/affected_products"
    },
    "configurations": {
      "@id": "https://www.variotdbs.pl/ref/configurations"
    },
    "credits": {
      "@id": "https://www.variotdbs.pl/ref/credits"
    },
    "cvss": {
      "@id": "https://www.variotdbs.pl/ref/cvss/"
    },
    "description": {
      "@id": "https://www.variotdbs.pl/ref/description/"
    },
    "exploit_availability": {
      "@id": "https://www.variotdbs.pl/ref/exploit_availability/"
    },
    "external_ids": {
      "@id": "https://www.variotdbs.pl/ref/external_ids/"
    },
    "iot": {
      "@id": "https://www.variotdbs.pl/ref/iot/"
    },
    "iot_taxonomy": {
      "@id": "https://www.variotdbs.pl/ref/iot_taxonomy/"
    },
    "patch": {
      "@id": "https://www.variotdbs.pl/ref/patch/"
    },
    "problemtype_data": {
      "@id": "https://www.variotdbs.pl/ref/problemtype_data/"
    },
    "references": {
      "@id": "https://www.variotdbs.pl/ref/references/"
    },
    "sources": {
      "@id": "https://www.variotdbs.pl/ref/sources/"
    },
    "sources_release_date": {
      "@id": "https://www.variotdbs.pl/ref/sources_release_date/"
    },
    "sources_update_date": {
      "@id": "https://www.variotdbs.pl/ref/sources_update_date/"
    },
    "threat_type": {
      "@id": "https://www.variotdbs.pl/ref/threat_type/"
    },
    "title": {
      "@id": "https://www.variotdbs.pl/ref/title/"
    },
    "type": {
      "@id": "https://www.variotdbs.pl/ref/type/"
    }
  },
  "@id": "https://www.variotdbs.pl/vuln/VAR-201001-0329",
  "affected_products": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/affected_products#",
      "data": {
        "@container": "@list"
      },
      "sources": {
        "@container": "@list",
        "@context": {
          "@vocab": "https://www.variotdbs.pl/ref/sources#"
        },
        "@id": "https://www.variotdbs.pl/ref/sources"
      }
    },
    "data": [
      {
        "model": null,
        "scope": null,
        "trust": 0.6,
        "vendor": "no",
        "version": null
      }
    ],
    "sources": [
      {
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ]
  },
  "description": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/description#",
      "sources": {
        "@container": "@list",
        "@context": {
          "@vocab": "https://www.variotdbs.pl/ref/sources#"
        }
      }
    },
    "data": "Apache HTTP Server is a popular web server. The Apache server\u0027s mod_proxy module has an integer overflow vulnerability that can eventually cause a heap overflow when performing character type conversions. The following is a vulnerable code snippet: \\\"./src/modules/proxy/proxy_util.c\\\"long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c, off_t len, int nowrite, int chunked, size_t recv_buffer_size){ ... size_t buf_size; long remaining = 0;... for (end_of_chunk = ok = 1; ok;) {... if (chunked) { long chunk_start = 0; n = 0; /* start of a new chunk */ if (end_of_chunk) { end_of_chunk = 0; /* get the chunk size from the stream */ chunk_start = ap_getline(buf, buf_size, f, 0); \u003c-------------- -- [0] reading line from traffic (socket) if ((chunk_start \u003c= 0) || ((size_t)chunk_start + 1 \u003e= buf_size) || !ap_isxdigit(*buf)) { n = -1; } / * parse the chunk size */ else { remaining = ap_get_chunk_size(buf); \u003c---------------- [1] convert readed data to \u0027long\u0027 size! if (re Maining == 0) { /* Last chunk indicated, get footers */... } } else if (remaining \u003c 0) { n = -1; ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, r, \\\"proxy: Remote protocol error, invalid chunk size\\\"); } } } /* read the chunk */ if (remaining \u003e 0) { n = ap_bread(f, buf, MIN((int)buf_size, (int)remaining)); ------------- [2] convert \u0027long\u0027 to \u0027int\u0027 !!!! if (n \u003e -1) { remaining -= n; end_of_chunk = (remaining == 0); } }......}When the server reads the HTTP header, if it is a block connection, it will wait at [0] and read the block size data from the socket, which will be received at [1]. The data to be converted to a long type; if there is a positive block size, [2] directly converts the long type to an int type, which is An integer overflow may be triggered on the amd64 architecture.",
    "sources": [
      {
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ],
    "trust": 0.6
  },
  "external_ids": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/external_ids#",
      "data": {
        "@container": "@list"
      },
      "sources": {
        "@container": "@list",
        "@context": {
          "@vocab": "https://www.variotdbs.pl/ref/sources#"
        }
      }
    },
    "data": [
      {
        "db": "CNVD",
        "id": "CNVD-2010-0173",
        "trust": 0.6
      }
    ],
    "sources": [
      {
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ]
  },
  "id": "VAR-201001-0329",
  "iot": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/iot#",
      "sources": {
        "@container": "@list",
        "@context": {
          "@vocab": "https://www.variotdbs.pl/ref/sources#"
        }
      }
    },
    "data": true,
    "sources": [
      {
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ],
    "trust": 0.06
  },
  "iot_taxonomy": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/iot_taxonomy#",
      "data": {
        "@container": "@list"
      },
      "sources": {
        "@container": "@list",
        "@context": {
          "@vocab": "https://www.variotdbs.pl/ref/sources#"
        }
      }
    },
    "data": [
      {
        "category": [
          "Network device"
        ],
        "sub_category": null,
        "trust": 0.6
      }
    ],
    "sources": [
      {
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ]
  },
  "last_update_date": "2022-05-04T09:19:26.600000Z",
  "sources": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/sources#",
      "data": {
        "@container": "@list"
      }
    },
    "data": [
      {
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ]
  },
  "sources_release_date": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/sources_release_date#",
      "data": {
        "@container": "@list"
      }
    },
    "data": [
      {
        "date": "2010-01-28T00:00:00",
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ]
  },
  "sources_update_date": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/sources_update_date#",
      "data": {
        "@container": "@list"
      }
    },
    "data": [
      {
        "date": "2010-01-28T00:00:00",
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ]
  },
  "title": {
    "@context": {
      "@vocab": "https://www.variotdbs.pl/ref/title#",
      "sources": {
        "@container": "@list",
        "@context": {
          "@vocab": "https://www.variotdbs.pl/ref/sources#"
        }
      }
    },
    "data": "Apache mod_proxy module HTTP block coded integer overflow vulnerability",
    "sources": [
      {
        "db": "CNVD",
        "id": "CNVD-2010-0173"
      }
    ],
    "trust": 0.6
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…